File size: 681 Bytes
224e773
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
pub struct EnvironmentBitmask {
    pub mask: u64,
    pub env_var_name: String,
}

impl EnvironmentBitmask {
    pub fn new(var_name: &str) -> Self {
        Self {
            mask: 0,
            env_var_name: var_name.to_string(),
        }
    }

    pub fn set_bit(&mut self, position: u8, value: bool) {
        if position < 64 {
            if value {
                self.mask |= 1 << position;
            } else {
                self.mask &= !(1 << position);
            }
        }
    }

    pub fn get_bit(&self, position: u8) -> bool {
        if position < 64 {
            (self.mask & (1 << position)) != 0
        } else {
            false
        }
    }
}