blob: 110f2d4388d45227620f5d346f85267e7bbc7435 [file] [log] [blame]
Zhi Doue8a4ee72023-12-18 20:32:55 +00001//! codegenerated rust flag lib
2
3/// flag provider
4pub struct FlagProvider;
5
6lazy_static::lazy_static! \{
Zhi Dou533421c2023-12-19 21:48:51 +00007{{ for flag in template_flags }}
Zhi Doue8a4ee72023-12-18 20:32:55 +00008 /// flag value cache for {flag.name}
9 static ref CACHED_{flag.name}: bool = flags_rust::GetServerConfigurableFlag(
10 "aconfig_flags.{flag.device_config_namespace}",
11 "{flag.device_config_flag}",
12 "false") == "true";
Zhi Dou533421c2023-12-19 21:48:51 +000013{{ endfor }}
Zhi Doue8a4ee72023-12-18 20:32:55 +000014}
15
16impl FlagProvider \{
Zhi Dou533421c2023-12-19 21:48:51 +000017{{ for flag in template_flags }}
Zhi Doue8a4ee72023-12-18 20:32:55 +000018 /// query flag {flag.name}
19 pub fn {flag.name}(&self) -> bool \{
20 *CACHED_{flag.name}
21 }
Zhi Dou533421c2023-12-19 21:48:51 +000022{{ endfor }}
Zhi Doue8a4ee72023-12-18 20:32:55 +000023
24}
25
26/// flag provider
27pub static PROVIDER: FlagProvider = FlagProvider;
28
29{{ for flag in template_flags }}
30/// query flag {flag.name}
31#[inline(always)]
32pub fn {flag.name}() -> bool \{
33 PROVIDER.{flag.name}()
34}
35{{ endfor }}