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