1#![allow(clippy::module_name_repetitions)]
2#![allow(clippy::module_inception)]
3mod base;
4pub mod clone;
5pub mod conjugate;
6mod error;
7pub mod group;
8pub mod lot;
9pub mod member;
10pub mod panel;
11pub mod panel_element;
12pub mod protein;
13pub mod provider;
14pub mod species;
15mod store;
16pub mod tag;
17pub mod user;
18pub mod validation;
19pub mod validation_file;
20pub mod view_application;
21pub mod view_clone;
22pub mod view_conjugate;
23pub mod view_group;
24pub mod view_lot;
25pub mod view_member;
26pub mod view_panel;
27pub mod view_panel_element;
28pub mod view_validation;
29
30pub use self::error::{Error, Result};
31
32use crate::model::store::{Db, new_db_pool};
33
34#[derive(Clone)]
35pub struct ModelManager {
36 db: Db,
37}
38
39impl ModelManager {
40 pub async fn new() -> Result<Self> {
41 let db = new_db_pool().await?;
42
43 Ok(Self { db })
44 }
45
46 pub const fn db(&self) -> &Db {
47 &self.db
48 }
49}