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