Enum SoftwareTimeout

Source
pub enum SoftwareTimeout {
    None,
    Transaction(Duration),
    PerByte(Duration),
}
Available on crate feature unstable only.
Expand description

Software timeout for I2C operations.

This timeout is used to limit the duration of I2C operations in software. Note that using this in conjunction with async operations will cause the task to be woken up continuously until the operation completes or the timeout is reached. You should prefer using an asynchronous timeout mechanism (like embassy_time::with_timeout) for better efficiency.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Variants§

§

None

No software timeout is set.

§

Transaction(Duration)

Define a fixed timeout for I2C operations.

§

PerByte(Duration)

Define a data length dependent timeout for I2C operations.

The applied timeout is calculated as data_length * duration_per_byte. In I2c::transaction and I2c::transaction_async, the timeout is applied separately for each operation.

Trait Implementations§

Source§

impl Clone for SoftwareTimeout

Source§

fn clone(&self) -> SoftwareTimeout

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SoftwareTimeout

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for SoftwareTimeout

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given [Hasher]. Read more
1.3.0§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given [Hasher]. Read more
Source§

impl PartialEq for SoftwareTimeout

Source§

fn eq(&self, other: &SoftwareTimeout) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SoftwareTimeout

Source§

impl Eq for SoftwareTimeout

Source§

impl StructuralPartialEq for SoftwareTimeout

Auto Trait Implementations§

§

impl Freeze for SoftwareTimeout

§

impl RefUnwindSafe for SoftwareTimeout

§

impl Send for SoftwareTimeout

§

impl Sync for SoftwareTimeout

§

impl Unpin for SoftwareTimeout

§

impl UnwindSafe for SoftwareTimeout

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.