Crate embedded_hal_compat[−][src]
Expand description
A compatibility layer to alleviate (some) of the issues resolving from changes to embedded-hal.
This crate lets you easily mix and match drivers and hal implementations using v1.x.x
and v0.2.x
versions of embedded-hal, just add a .forward()
or a .reverse()
wherever you see trait bounds errors.
Note that no effort is made to support interoperability between alpha versions, we’ll do our best to keep
up with the latest alpha and swap to 1.0.0
on release. In the future these traits may be renamed to support more hal versions.
Forward compatibility:
Calling ForwardCompat::forward()
(or .forward()
) on v0.2.x
types creates a wrapper for use with v1.0.x
consumers, so you can drop these wrapped types into drivers expecting v1.0.x
types.
use embedded_hal_compat::ForwardCompat; // Create e-h v0.2.x based type (mock) let mut old = OutputPin0_2; // Access via e-h v0.2.x methods let _ = eh0_2::digital::v2::OutputPin::set_high(&mut old); // Apply forward compatibility wrapper let mut new = old.forward(); // Access via e-h v1.x.x methods let _ = eh1_0::digital::OutputPin::try_set_high(&mut new);
Backwards compatibility:
Calling ReverseCompat::reverse()
(or .reverse()
) on v1.0.x
types creates a wrapper for use with v0.2.x
consumers, so you can drop these wrapped types into drivers expecting v0.2.x
types.
use embedded_hal_compat::ReverseCompat; // Create e-h v1.x.x based type (mock) let mut new = OutputPin1_0; // Access via e-h v1.x.x methods let _ = eh1_0::digital::OutputPin::try_set_high(&mut new); // Apply backwards compatibility wrapper let mut old = new.reverse(); // Access via e-h v0.2.x methods let _ = eh0_2::digital::v2::OutputPin::set_high(&mut old);
Re-exports
pub use eh0_2; | |
pub use eh1_0; | |
pub use forward::ForwardCompat; | |
pub use reverse::ReverseCompat; |
Modules
forward | Embedded HAL Forward Compat Later A compatibility layer to alleviate (some) of the issues resolving from changes to embedded-hal |
mock | Mock types for documentation, please ignore |
reverse | Embedded HAL Reverse compatibility shim A compatibility layer to alleviate (some) of the issues resolving from changes to embedded-hal |