Module embedded_hal::digital::v2_compat[][src]

v2 compatibility shims

This module adds implicit forward support to v1 digital traits, allowing v1 implementations to be directly used with v2 consumers.

extern crate embedded_hal;
use embedded_hal::digital::{v1, v2};
 
struct OldOutputPinImpl { }
 
impl v1::OutputPin for OldOutputPinImpl {
    fn set_low(&mut self) { }
    fn set_high(&mut self) { }
}
 
struct NewOutputPinConsumer<T: v2::OutputPin> {
    _pin: T,
}
 
impl <T>NewOutputPinConsumer<T> 
where T: v2::OutputPin {
    pub fn new(pin: T) -> NewOutputPinConsumer<T> {
        NewOutputPinConsumer{ _pin: pin }
    }
}
 
fn main() {
    let pin = OldOutputPinImpl{};
    let _consumer = NewOutputPinConsumer::new(pin);
}