1#![expect(clippy::too_many_arguments)]
2
3pub(crate) mod admin;
4#[macro_use]
5pub(crate) mod context;
6mod tests;
7pub(crate) mod utils;
8
9pub(crate) mod appservice;
10pub(crate) mod debug;
11pub(crate) mod federation;
12pub(crate) mod media;
13pub(crate) mod query;
14pub(crate) mod room;
15pub(crate) mod server;
16pub(crate) mod token;
17pub(crate) mod user;
18
19use std::sync::Arc;
20
21use log as _;
22pub(crate) use tuwunel_macros::{admin_command, admin_command_dispatch};
23
24pub(crate) use crate::{context::Context, utils::get_room_info};
25
26pub(crate) const PAGE_SIZE: usize = 100;
27
28tuwunel_core::mod_ctor! {}
29tuwunel_core::mod_dtor! {}
30tuwunel_core::rustc_flags_capture! {}
31
32pub fn init(admin_service: &tuwunel_service::admin::Service) {
34 let root: Arc<dyn tuwunel_service::admin::Command> = Arc::new(admin::Root);
35 _ = admin_service
36 .command
37 .write()
38 .expect("locked for writing")
39 .insert(root);
40}
41
42pub fn fini(admin_service: &tuwunel_service::admin::Service) {
44 _ = admin_service
45 .command
46 .write()
47 .expect("locked for writing")
48 .take();
49}