#![allow(async_fn_in_trait)]
#![cfg_attr(not(test), no_std)]
#![warn(missing_docs)]
#![doc = include_str!(concat!("../", env!("CARGO_PKG_README")))]
use core::fmt::{Debug, Display};
pub use embedded_io;
pub use embedded_io_async;
mod register;
pub use register::*;
mod command;
pub use command::*;
mod buffer;
pub use buffer::*;
#[doc(hidden)]
pub mod ops;
#[cfg(feature = "_macros")]
pub use device_driver_macros::*;
#[doc(hidden)]
pub trait FieldSet {
const SIZE_BITS: u32;
fn new_with_zero() -> Self;
fn get_inner_buffer(&self) -> &[u8];
fn get_inner_buffer_mut(&mut self) -> &mut [u8];
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
#[cfg_attr(feature = "defmt-03", derive(defmt::Format))]
pub struct ConversionError<T> {
pub source: T,
pub target: &'static str,
}
impl<T: Display> Display for ConversionError<T> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(
f,
"Could not convert value from `{}` to type `{}`",
self.source, self.target
)
}
}
impl<T: Display + Debug> core::error::Error for ConversionError<T> {}
#[doc(hidden)]
pub struct WO;
#[doc(hidden)]
pub struct RO;
#[doc(hidden)]
pub struct RW;
#[doc(hidden)]
pub struct RC;
#[doc(hidden)]
pub struct CO;
#[doc(hidden)]
pub trait ReadCapability {}
#[doc(hidden)]
pub trait WriteCapability {}
impl WriteCapability for WO {}
impl ReadCapability for RO {}
impl WriteCapability for RW {}
impl ReadCapability for RW {}