switch-hal 0.4.0

HAL and basic implementations for input and output switches (buttons, switches, leds, transistors)
Documentation
use switch_hal::mock::{Pin, State};
use switch_hal::IntoSwitch;

mod output_pin {
    use super::*;

    use embedded_hal::digital::v2::InputPin;
    use switch_hal::OutputSwitch;

    #[test]
    fn active_high() {
        let pin = Pin::new();
        let mut switch = pin.into_active_high_switch();
        switch.on().unwrap();

        let pin = switch.into_pin();
        assert_eq!(true, pin.is_high().unwrap());
    }

    #[test]
    fn active_low() {
        let pin = Pin::new();
        let mut switch = pin.into_active_low_switch();
        switch.on().unwrap();

        let pin = switch.into_pin();
        assert_eq!(true, pin.is_low().unwrap());
    }
}

mod input_pin {
    use super::*;
    use switch_hal::InputSwitch;

    #[test]
    fn active_high() {
        let pin = Pin::with_state(State::High);
        let switch = pin.into_active_high_switch();
        assert_eq!(true, switch.is_active().unwrap());
    }

    #[test]
    fn active_low() {
        let pin = Pin::with_state(State::Low);
        let switch = pin.into_active_low_switch();
        assert_eq!(true, switch.is_active().unwrap());
    }
}