infrared 0.14.2

Infrared remote control library
Documentation
use embedded_hal::digital::v2::InputPin;

#[cfg(feature = "rc5")]
#[test]
fn receiver_remote() {
    use infrared::{
        protocol::Rc5,
        receiver::{NoPin, Receiver},
        remotecontrol::{rc5, rc5::CdPlayer, Button},
    };

    let mut r: Receiver<Rc5, NoPin, u32, Button<CdPlayer>> = Receiver::builder()
        .rc5()
        .remotecontrol(rc5::CdPlayer)
        .build();

    match r.event(40, false) {
        Ok(Some(event)) => {
            println!(
                "Action: {:?}, repeat: {}",
                event.action(),
                event.is_repeat()
            )
        }
        Ok(None) => (),
        Err(_err) => (),
    }

    let _r: Receiver<Rc5, NoPin, u32, Button<CdPlayer>> = Receiver::new(20_000);
}

struct DummyEmbeddedHalPin;

impl InputPin for DummyEmbeddedHalPin {
    type Error = ();

    fn is_high(&self) -> Result<bool, Self::Error> {
        Ok(true)
    }

    fn is_low(&self) -> Result<bool, Self::Error> {
        Ok(false)
    }
}