Skip to main content

tuwunel_admin/
mod.rs

1#![expect(clippy::too_many_arguments)]
2
3pub(crate) mod admin;
4pub(crate) mod context;
5pub(crate) mod processor;
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
19pub(crate) use tuwunel_macros::{admin_command, admin_command_dispatch};
20
21pub(crate) use crate::{context::Context, utils::get_room_info};
22
23pub(crate) const PAGE_SIZE: usize = 100;
24
25use log as _;
26
27tuwunel_core::mod_ctor! {}
28tuwunel_core::mod_dtor! {}
29tuwunel_core::rustc_flags_capture! {}
30
31/// Install the admin command processor
32pub async fn init(admin_service: &tuwunel_service::admin::Service) {
33	_ = admin_service
34		.complete
35		.write()
36		.expect("locked for writing")
37		.insert(processor::complete);
38	_ = admin_service
39		.handle
40		.write()
41		.await
42		.insert(processor::dispatch);
43}
44
45/// Uninstall the admin command handler
46pub async fn fini(admin_service: &tuwunel_service::admin::Service) {
47	_ = admin_service.handle.write().await.take();
48	_ = admin_service
49		.complete
50		.write()
51		.expect("locked for writing")
52		.take();
53}