Skip to main content

tuwunel_admin/
mod.rs

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;
11#[path = "debug/event_fetcher/mod.rs"]
12mod event_fetcher;
13pub(crate) mod federation;
14pub(crate) mod media;
15pub(crate) mod query;
16pub(crate) mod room;
17pub(crate) mod server;
18pub(crate) mod token;
19pub(crate) mod user;
20
21use std::sync::Arc;
22
23use log as _;
24pub(crate) use tuwunel_macros::{admin_command, admin_command_dispatch};
25
26pub(crate) use crate::{context::Context, utils::get_room_info};
27
28pub(crate) const PAGE_SIZE: usize = 100;
29
30tuwunel_core::mod_ctor! {}
31tuwunel_core::mod_dtor! {}
32tuwunel_core::rustc_flags_capture! {}
33
34/// Install the admin command root.
35pub fn init(admin_service: &tuwunel_service::admin::Service) {
36	let root: Arc<dyn tuwunel_service::admin::Command> = Arc::new(admin::Root);
37	_ = admin_service
38		.command
39		.write()
40		.expect("locked for writing")
41		.insert(root);
42}
43
44/// Uninstall the admin command root.
45pub fn fini(admin_service: &tuwunel_service::admin::Service) {
46	_ = admin_service
47		.command
48		.write()
49		.expect("locked for writing")
50		.take();
51}