Module embedded_hal::digital::v2_compat
source ยท Expand description
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);
}