2025-12-03 10:15:20 -07:00
|
|
|
mod database;
|
|
|
|
|
mod manager;
|
|
|
|
|
|
|
|
|
|
#[derive(Clone)]
|
|
|
|
|
pub struct Server {
|
2025-12-17 10:20:50 -07:00
|
|
|
pub config: Vec<crate::config::ComponentMetadata>,
|
|
|
|
|
// pub manager: Arc<Mutex<Manager>>,
|
2025-12-03 10:15:20 -07:00
|
|
|
pub db: sled::Db,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Server {
|
|
|
|
|
pub fn new(database: String) -> Self {
|
|
|
|
|
Self {
|
2025-12-17 10:20:50 -07:00
|
|
|
config: Vec::new(),
|
|
|
|
|
// manager: Manager::start(&SERVER_CONFIG, Vec::new()),
|
2025-12-03 10:15:20 -07:00
|
|
|
db: sled::open(database).expect("Failed to open database"),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Drop for Server {
|
|
|
|
|
fn drop(&mut self) {
|
|
|
|
|
self.db.flush().expect("Failed to flush database on drop");
|
2025-12-17 10:20:50 -07:00
|
|
|
// Manager::join(self.manager.clone());
|
2025-12-03 10:15:20 -07:00
|
|
|
}
|
|
|
|
|
}
|