actix_diesel_cache

Docs Crates.io

A library with actor which provides caching for small and rarely changing tables in databases.

Usage

Add to Cargo.toml:

toml actix_diesel_cache = "0.1.0"

Example

```rust use diesel::prelude::*;

table! { shop (id) { id -> Int4, name -> Text, address -> Text, } }

[derive(Queryable, Insertable, Clone, Debug, Eq, PartialEq)]

[table_name = "shop"]

struct Shop { id: i32, name: String, address: String, }

impl actixdieselcache::Cache for Shop { type Id = i32; fn get_id(&self) -> Self::Id { s.id } }

async fn example(conn: SqliteConnection) -> actixdieselcache::Result<()> { let addr = actixdieselcache::CacheDbActor::new(conn)?.start();

let shop = Shop {
    id: 1,
    name: "Adidas",
    address: "Central street",
};
addr.send(actix_diesel_cache::Save(shop)).await.unwrap()?;
let shop1 = addr.send(actix_diesel_cache::Get(shop.id)).await.unwrap()?;;

assert_eq!(shop, shop1);

let shops = addr.send(actix_diesel_cache::GetAll::default()).await.unwrap()?;;

assert_eq!(shops, vec![shop]);

} ```