pub struct ArbitraryI2c<T> { /* private fields */ }Expand description
Creates a fuzzed i2c driver, this type is intended to be constructed the arbitrary crate e.g.
use arbitrary::{Arbitrary, Unstructured};
use embedded_hal_fuzz::i2c::ArbitraryI2c;
use embedded_hal::i2c::{SevenBitAddress, TenBitAddress};
let raw_fuzzed_data = &[1u8, 2, 3, 4, 5][..];
let mut unstructured = Unstructured::new(raw_fuzzed_data);
let seven_bit_spi_bus = ArbitraryI2c::<SevenBitAddress>::arbitrary(&mut unstructured);
let ten_bit_spi_bus = ArbitraryI2c::<TenBitAddress>::arbitrary(&mut unstructured);Trait Implementations§
Source§impl<'arbitrary, T: Arbitrary<'arbitrary>> Arbitrary<'arbitrary> for ArbitraryI2c<T>
impl<'arbitrary, T: Arbitrary<'arbitrary>> Arbitrary<'arbitrary> for ArbitraryI2c<T>
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Get a size hint for how many bytes out of an
Unstructured this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Get a size hint for how many bytes out of an
Unstructured this type
needs to construct itself. Read moreSource§impl<T: Debug> Debug for ArbitraryI2c<T>
impl<T: Debug> Debug for ArbitraryI2c<T>
Source§impl I2c<u16> for ArbitraryI2c<TenBitAddress>
impl I2c<u16> for ArbitraryI2c<TenBitAddress>
Source§fn transaction(
&mut self,
_address: u16,
operations: &mut [Operation<'_>],
) -> Result<(), Self::Error>
fn transaction( &mut self, _address: u16, operations: &mut [Operation<'_>], ) -> Result<(), Self::Error>
Execute the provided operations on the I2C bus. Read more
Source§impl I2c for ArbitraryI2c<SevenBitAddress>
impl I2c for ArbitraryI2c<SevenBitAddress>
Source§fn transaction(
&mut self,
_address: u8,
operations: &mut [Operation<'_>],
) -> Result<(), Self::Error>
fn transaction( &mut self, _address: u8, operations: &mut [Operation<'_>], ) -> Result<(), Self::Error>
Execute the provided operations on the I2C bus. Read more
Auto Trait Implementations§
impl<T> Freeze for ArbitraryI2c<T>
impl<T> RefUnwindSafe for ArbitraryI2c<T>where
T: RefUnwindSafe,
impl<T> Send for ArbitraryI2c<T>where
T: Send,
impl<T> Sync for ArbitraryI2c<T>where
T: Sync,
impl<T> Unpin for ArbitraryI2c<T>where
T: Unpin,
impl<T> UnwindSafe for ArbitraryI2c<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more