33 lines
745 B
Rust
33 lines
745 B
Rust
use crate::database::Database;
|
|
use crate::merger::Merger;
|
|
use crate::queryer::Queryer;
|
|
use crate::validator::Validator;
|
|
use std::sync::Arc;
|
|
|
|
pub struct Jspg {
|
|
pub database: Arc<Database>,
|
|
pub validator: Validator,
|
|
pub queryer: Queryer,
|
|
pub merger: Merger,
|
|
}
|
|
|
|
impl Jspg {
|
|
pub fn new(database_val: &serde_json::Value) -> (Self, crate::drop::Drop) {
|
|
let (database_instance, drop) = Database::new(database_val);
|
|
let database = Arc::new(database_instance);
|
|
let validator = Validator::new(database.clone());
|
|
let queryer = Queryer::new(database.clone());
|
|
let merger = Merger::new(database.clone());
|
|
|
|
(
|
|
Self {
|
|
database,
|
|
validator,
|
|
queryer,
|
|
merger,
|
|
},
|
|
drop,
|
|
)
|
|
}
|
|
}
|