tuwunel_admin/query/raw/
count.rs1use futures::StreamExt;
2use tuwunel_core::{
3 Result,
4 utils::{
5 stream::{IterStream, ReadyExt},
6 string::EMPTY,
7 },
8};
9
10use super::with_map_or;
11use crate::admin_command;
12
13#[admin_command]
14pub(super) async fn raw_count(&self, map: Option<String>, prefix: Option<String>) -> Result {
15 let prefix = prefix.as_deref().unwrap_or(EMPTY);
16
17 let maps = with_map_or(map.as_deref(), self.services)?;
18
19 let query = maps
20 .iter()
21 .stream()
22 .then(|map| map.raw_count_prefix(&prefix))
23 .ready_fold(0_usize, usize::saturating_add);
24
25 self.write_timed_query(query).await
26}