Crate ood_persistence[][src]

Expand description

OOD Persistence

Asynchronous and synchronous interfaces and persistence implementations for your OOD architecture

Installation

Add ood_persistence = { version = "0", features = ["<IMPLEMENTATION_NAME>"] } as a dependency in Cargo.toml.

NOTE: change <IMPLEMENTATION_NAME> to feature name from available list. See Cargo.toml for more information.

Cargo.toml example:

[package]
name = "my-crate"
version = "0.1.0"
authors = ["Me <user@rust-lang.org>"]

[dependencies]
ood_persistence = { version = "0", features = ["bb8_postgres"] }

In stable rust channel you can use only connection interface, but if you use nightly channel, add an additional “nightly” feature to your Cargo.toml and you can use transactions as well.

Usage

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // create pool to our database
    let pool = create_postgres_pool();
    // initialize persistence
    let persistence = ood_persistence::r2d2_postgres::new(&pool);
    // get connection to database
    let mut conn = persistence.get_connection()?;
    // we can query something
    let res: i32 = conn.inner().query_one("select 1", &[])?.get(0);
    assert_eq!(res, 1);

    Ok(())
}

See examples directory for more information.

Contributors

pleshevskiy (Dmitriy Pleshevskiy) – creator, maintainer.

Re-exports

pub use bb8;
pub use r2d2;
pub use error::Error;
pub use error::Result;

Modules

This module contains interfaces for async persistence.

This module contains implementation for async interface of postgres database.

This module contains implementations for errors and result, that this crate uses

This module contains implementation for sync interface of mysql database.

This module contains implementation for sync interface of postgres database.

This module contains implementation for sync interface of sqlite database.

This module contains interfaces for sync persistence.