pub struct Class(/* private fields */);
Available on AArch64 only.
Expand description

Classifies different exception causes.

Note that the Arm documentation defines more variants than are defined in this type. This only includes exception classes that can be triggered from Aarch64 state and taken to EL1.

Implementations§

source§

impl Class

source

pub const Unknown: Self = _

Tried to execute an undefined/unsupported opcode, or for any other reason that does not fall under another exception class.

source

pub const Wait: Self = _

Trapped execution of a wait instruction (WFE/WFI).

source

pub const FPUAccess: Self = _

Trapped access to a FPU/vector register or instruction.

source

pub const IllegalState: Self = _

Tried to execute instructions after an illegal return.

source

pub const SupervisorCall: Self = _

Triggered a system call via the SVC instruction.

source

pub const SystemInstruction: Self = _

Trapped access to a system register or instruction.

source

pub const VectorAccess: Self = _

Trapped access to a vector register or instruction.

source

pub const PointerAuthFailure: Self = _

Improperly authenticated pointer detected. Requires FEAT_FPAC.

source

pub const InstructionAbortFromLower: Self = _

Instruction abort triggered at lower exception level.

source

pub const InstructionAbortFromCurrent: Self = _

Instruction abort triggered at current exception level.

source

pub const PCAlignment: Self = _

Program counter not properly aligned.

source

pub const DataAbortFromLower: Self = _

Data abort triggered at lower exception level.

source

pub const DataAbortFromCurrent: Self = _

Data abort triggered at current exception level.

source

pub const SPAlignment: Self = _

Stack pointer not properly aligned.

source

pub const FloatException: Self = _

Trapped floating point exception.

source

pub const SystemError: Self = _

System error (SError).

source

pub const BreakpointFromLower: Self = _

Breakpoint triggered at lower exception level.

source

pub const BreakpointFromCurrent: Self = _

Breakpoint triggered at current exception level.

source

pub const StepFromLower: Self = _

Software step at lower exception level.

source

pub const StepFromCurrent: Self = _

Software step at current exception level.

source

pub const WatchpointFromLower: Self = _

Watchpoint triggered at lower exception level.

source

pub const WatchpointFromCurrent: Self = _

Watchpoint triggered at current exception level.

source

pub const BreakpointInstruction: Self = _

Executed a BRK breakpoint instruction.

source

pub const fn name(self) -> Option<&'static str>

The name of the enum variant in code, if one is defined for this value.

An identical method is available through the CEnum trait, but this version is declared const (which is currently unstable on traits).

Trait Implementations§

source§

impl CEnum<u8> for Class

source§

fn name(self) -> Option<&'static str>

The name of the enum variant in code, if one is defined for this value.
source§

impl Clone for Class

source§

fn clone(&self) -> Class

Returns a copy 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 Class

source§

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

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

impl Default for Class

source§

fn default() -> Class

Returns the “default value” for a type. Read more
source§

impl From<Class> for u8

source§

fn from(enum_value: Class) -> Self

Converts to this type from the input type.
source§

impl From<u8> for Class

source§

fn from(repr: u8) -> Self

Converts to this type from the input type.
source§

impl Hash for Class

source§

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

Feeds this value into the given Hasher. Read more
1.3.0 · source§

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 Ord for Class

source§

fn cmp(&self, other: &Class) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Class

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Class

source§

fn partial_cmp(&self, other: &Class) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Copy for Class

source§

impl Eq for Class

source§

impl StructuralPartialEq for Class

Auto Trait Implementations§

§

impl RefUnwindSafe for Class

§

impl Send for Class

§

impl Sync for Class

§

impl Unpin for Class

§

impl UnwindSafe for Class

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> 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>,

§

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>,

§

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.