#![doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/README.md"))]
#![cfg_attr(not(feature = "std"), no_std)]
#[cfg(not(any(feature = "sync", feature = "async")))]
compile_error!("You must enable at least one of the create features `sync` or `async`");
pub use bitvec;
pub use bytemuck;
pub use const_format;
pub mod bitdump;
pub mod commands;
pub mod i2c;
pub mod packable;
pub mod registers;
pub mod spi;
#[derive(Debug, thiserror::Error)]
pub enum TransportError<CodecError, BusError> {
#[error("codec error")]
Codec(CodecError),
#[error("unexpected: {0}")]
Unexpected(&'static str),
#[error("bus error")]
Bus(#[from] BusError),
}
#[cfg(feature = "std")]
pub trait BitdumpFormattable {
fn bitdump(&self) -> bitdump::BitdumpFormatter;
}
#[cfg(feature = "std")]
impl BitdumpFormattable for () {
fn bitdump(&self) -> bitdump::BitdumpFormatter {
bitdump::BitdumpFormatter::new("()".to_string(), vec![], vec![])
}
}
#[cfg(feature = "std")]
pub trait MaybeBitdumpFormattable: crate::BitdumpFormattable {}
#[cfg(feature = "std")]
impl<T: crate::BitdumpFormattable> MaybeBitdumpFormattable for T {}
#[cfg(not(feature = "std"))]
pub trait MaybeBitdumpFormattable {}
#[cfg(not(feature = "std"))]
impl<T> MaybeBitdumpFormattable for T {}
pub mod codegen {
pub use embedded_interfaces_codegen::*;
}