Module koit::backend[][src]

Expand description

Backends persist the database. They allow reading and writing bytes. Bytes-to-data conversion, and back, is handled by a Format.

Examples

use std::default::Default;
use koit::{Database, format::Json, backend::Memory};

type Messages = Vec<String>;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let db: Database<Messages, Memory, Json> = Database::from_parts(
        Messages::default(), Memory::default()
    );

    db.write(|messages| {
        messages.push("a message".to_owned());
        messages.push("from me to you".to_owned());
    }).await;
    db.save().await?;

    let (_data, mut backend) = db.into_parts();
    assert_eq!(&mut backend.take(),
br#"[
  "a message",
  "from me to you"
]"#
    );

    Ok(())
}

Structs

Filefile-backend

A file-backed backend.

Memory

An in-memory backend.

Traits

Backend

Trait implementable by bytes storage providers.