33 lines
1.0 KiB
Rust
33 lines
1.0 KiB
Rust
//! Factory module for creating a DB with all zaz models registered
|
|
|
|
use crate::core::{DB, DBBuilder, SledDBResult};
|
|
use crate::zaz::models::*;
|
|
use std::path::PathBuf;
|
|
|
|
/// Create a new DB instance with all zaz models registered
|
|
pub fn create_zaz_db<P: Into<PathBuf>>(path: P) -> SledDBResult<DB> {
|
|
// Using the builder pattern to register all models
|
|
DBBuilder::new(path)
|
|
.register_model::<User>()
|
|
.register_model::<Company>()
|
|
.register_model::<Meeting>()
|
|
.register_model::<Product>()
|
|
.register_model::<Sale>()
|
|
.register_model::<Vote>()
|
|
.register_model::<Shareholder>()
|
|
.build()
|
|
}
|
|
|
|
/// Register all zaz models with an existing DB instance
|
|
pub fn register_zaz_models(db: &mut DB) -> SledDBResult<()> {
|
|
// Dynamically register all zaz models
|
|
db.register::<User>()?;
|
|
db.register::<Company>()?;
|
|
db.register::<Meeting>()?;
|
|
db.register::<Product>()?;
|
|
db.register::<Sale>()?;
|
|
db.register::<Vote>()?;
|
|
db.register::<Shareholder>()?;
|
|
|
|
Ok(())
|
|
} |