2022-10-05 20:34:31 +02:00
|
|
|
pub mod api;
|
2022-02-03 13:30:04 +01:00
|
|
|
mod config;
|
2020-07-25 23:08:00 -04:00
|
|
|
mod database;
|
2022-09-06 23:15:09 +02:00
|
|
|
mod service;
|
2020-07-25 23:08:00 -04:00
|
|
|
mod utils;
|
|
|
|
|
2024-03-05 20:52:16 -05:00
|
|
|
// Not async due to services() being used in many closures, and async closures
|
|
|
|
// are not stable as of writing This is the case for every other occurence of
|
|
|
|
// sync Mutex/RwLock, except for database related ones, where the current
|
|
|
|
// maintainer (Timo) has asked to not modify those
|
2022-10-08 13:03:07 +02:00
|
|
|
use std::sync::RwLock;
|
2022-01-18 21:04:44 +01:00
|
|
|
|
2022-10-05 20:34:31 +02:00
|
|
|
pub use api::ruma_wrapper::{Ruma, RumaResponse};
|
2022-02-03 13:30:04 +01:00
|
|
|
pub use config::Config;
|
2022-10-08 13:03:07 +02:00
|
|
|
pub use database::KeyValueDatabase;
|
2022-10-05 20:34:31 +02:00
|
|
|
pub use service::{pdu::PduEvent, Services};
|
2022-09-06 23:15:09 +02:00
|
|
|
pub use utils::error::{Error, Result};
|
|
|
|
|
2023-12-25 16:28:56 +01:00
|
|
|
pub static SERVICES: RwLock<Option<&'static Services<'static>>> = RwLock::new(None);
|
2022-09-06 23:15:09 +02:00
|
|
|
|
2023-12-25 16:28:56 +01:00
|
|
|
pub fn services() -> &'static Services<'static> {
|
2024-03-05 19:48:54 -05:00
|
|
|
SERVICES.read().unwrap().expect("SERVICES should be initialized when this is called")
|
2022-09-06 23:15:09 +02:00
|
|
|
}
|