Skip to main content

AteccErrorKind

Enum AteccErrorKind 

Source
pub enum AteccErrorKind {
    Hal,
    WakeFailed,
    SelfTestFailure,
    BadCrc,
    Chip(ChipError),
    Timeout,
    MalformedResponse,
    BufferTooSmall,
}
Expand description

Non-generic projection of AteccError.

Carries the same variant identity (and, for AteccErrorKind::Chip, the inner ChipError) but drops the HAL payload. Cheap to copy and safe to pass across layers that don’t want to be generic over HalError.

The non-Chip variants are encoded as stable u8 sub-codes by AteccErrorKind::as_sub_code, used by the USB-HID protocol to expose the failure category to the host CLI.

Variants§

§

Hal

HAL error (I2C nack, GPIO failure, etc).

§

WakeFailed

Chip did not return the expected wake-response pattern.

§

SelfTestFailure

Chip returned the self-test-failure pattern after wake.

§

BadCrc

CRC-16 of a received frame did not match.

§

Chip(ChipError)

Chip-side error status. The inner ChipError carries the raw byte.

§

Timeout

Polling exceeded the watchdog window.

§

MalformedResponse

A received frame has an inconsistent length byte.

§

BufferTooSmall

A caller-supplied buffer was too small for the response.

Implementations§

Source§

impl AteccErrorKind

Source

pub const fn as_sub_code(self) -> u8

Return the stable u8 sub-code identifying this variant.

Chip(_) is not assigned a sub-code here because chip errors carry their own dedicated status byte (the chip’s raw response byte, available via ChipError::as_status_byte) and are routed to a distinct top-level HID status. The fallback value 0x00 is reserved for that case and indicates “see the dedicated chip-error path”.

Source

pub const fn from_sub_code(byte: u8) -> Option<Self>

Map a wire-format sub-code back to a non-Chip variant.

Returns None for 0x00 (reserved for the chip-error path) and for any byte outside the assigned range. Callers reconstructing an error from the wire should handle the chip path through ChipError::from_status_byte separately.

Trait Implementations§

Source§

impl Clone for AteccErrorKind

Source§

fn clone(&self) -> AteccErrorKind

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for AteccErrorKind

Source§

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

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

impl PartialEq for AteccErrorKind

Source§

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

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

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 AteccErrorKind

Source§

impl Eq for AteccErrorKind

Source§

impl StructuralPartialEq for AteccErrorKind

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

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

Source§

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.