Mountain/IPC/DevLog/
IsEnabled.rs1
2use std::sync::OnceLock;
12
13static ENABLED_TAGS:OnceLock<Vec<String>> = OnceLock::new();
14
15const SHORT_MODE_MUTED_TAGS:&[&str] = &[
16 "grpc-verbose",
17 "vfs-verbose",
18 "fs-route",
19 "tauri-invoke",
20 "rpc-latency",
21 "tree-latency",
22 "nls",
23 "fs-read",
24 "preflight",
25 "wsns",
26 "storage-verbose",
27 "config-prime",
28 "cel-dispatch",
29 "output-verbose",
30 "command-register",
31 "provider-register",
32 "ext-scan-verbose",
33 "channel-stub",
34 "commands-verbose",
35 "scheme-assets",
36 "cocoon-stderr-verbose",
37 "vscode-api-gap",
38];
39
40pub(super) fn EnabledTags() -> &'static Vec<String> {
41 ENABLED_TAGS.get_or_init(|| {
42 match std::env::var("Trace") {
43 Ok(Val) => Val.split(',').map(|S| S.trim().to_lowercase()).collect(),
44 Err(_) => vec![],
45 }
46 })
47}
48
49pub fn Fn(Tag:&str) -> bool {
50 let Tags = EnabledTags();
51
52 if Tags.is_empty() {
53 return false;
54 }
55
56 let Lower = Tag.to_lowercase();
57
58 if Tags.iter().any(|T| T == Lower.as_str()) {
59 return true;
60 }
61
62 if Tags.iter().any(|T| T == "all") {
63 return true;
64 }
65
66 if Tags.iter().any(|T| T == "short") {
67 return !SHORT_MODE_MUTED_TAGS.iter().any(|Muted| *Muted == Lower.as_str());
68 }
69
70 false
71}