deep_log 0.3.1

Dual-axis logging : level + zone bitflag, console and file output
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    /// Itère sur chaque zone simple (un bit) contenu dans ce bitflag.
    /// Pour LogZone::ALL, ne retourne que les 8 zones prédéfinies (pas les 24 bits vides).
    pub fn iter_single(self) -> impl Iterator<Item = LogZone> {
        // Zones prédéfinies : bits 0..7
        // Zones custom : bits 8..31, mais seulement si explicitement dans le bitflag
        // (on ignore les bits custom qui sont 1 uniquement parce que ALL = u32::MAX)
        const PREDEFINED: u32 = 0xFF; // bits 0..7
        let predefined_bits = self.0 & PREDEFINED;
        let custom_bits     = if self.0 == u32::MAX { 0 } else { self.0 & !PREDEFINED };
        let bits = predefined_bits | custom_bits;
        (0..32u8)
            .filter(move |&bit| bits & (1u32 << bit) != 0)
            .map(|bit| LogZone(1u32 << bit))
    }