diff --git a/2sem_sem2/src/lib.rs b/2sem_sem2/src/lib.rs index 305d2a1..b80f6a6 100644 --- a/2sem_sem2/src/lib.rs +++ b/2sem_sem2/src/lib.rs @@ -10,12 +10,20 @@ pub enum Encoding { Manchester, } -pub const LOGIC_ONE_HIGH: bool = true; +#[derive(Copy, Clone, PartialEq)] +pub enum LogicLevel { + Low, + High, +} + +pub const LOGIC_ZERO: LogicLevel = LogicLevel::Low; +pub const LOGIC_ONE: LogicLevel = LogicLevel::High; pub fn level_for_bit(bit: u8) -> bool { - (bit != 0) == LOGIC_ONE_HIGH + let level = if bit == 0 { LOGIC_ZERO } else { LOGIC_ONE }; + level == LogicLevel::High } pub fn bit_for_level(level: bool) -> u8 { - if level == LOGIC_ONE_HIGH { 1 } else { 0 } + if level_for_bit(1) == level { 1 } else { 0 } }