use std::error::Error; use std::sync::{Mutex, Arc}; use crate::data::config::DatabaseConfig; use mysql::Pool; /// Database access helper /// /// @author Pierre Hubert // Pool shared across threads static mut POOL: Option>> = None; /// Connect to the database pub fn connect(conf: &DatabaseConfig) -> Result<(), Box> { let url = format!( "mysql://{}:{}@{}:3306/{}", conf.username, conf.password, conf.host, conf.name ); let pool = Pool::new(url)?; let pool = Some(Arc::new(Mutex::new(pool))); unsafe { POOL = pool; } Ok(()) }