uv_flags/
lib.rs

1use std::sync::OnceLock;
2
3static FLAGS: OnceLock<EnvironmentFlags> = OnceLock::new();
4
5bitflags::bitflags! {
6    #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
7    pub struct EnvironmentFlags: u32 {
8        const SKIP_WHEEL_FILENAME_CHECK = 1 << 0;
9        const HIDE_BUILD_OUTPUT = 1 << 1;
10    }
11}
12
13/// Initialize the environment flags.
14#[allow(clippy::result_unit_err)]
15pub fn init(flags: EnvironmentFlags) -> Result<(), ()> {
16    FLAGS.set(flags).map_err(|_| ())
17}
18
19/// Check if a specific environment flag is set.
20pub fn contains(flag: EnvironmentFlags) -> bool {
21    FLAGS.get_or_init(EnvironmentFlags::default).contains(flag)
22}