Enum EHAction

pub enum EHAction

Variants

None
Cleanup(*const u8)

Destructors should be executed when stack unwinds.

Catch(*const u8)

Stack unwind should be stopped as the exception is going to be caught by catch_unwind.

Filter(*const u8)

Stack unwind should be stopped for termination (UnwindAction::Terminate).

Note that due to inlining the landing pad can execute destructors before terminating. So this is different from Terminate.

Handling of this is mostly identical to Catch; except that Rust frames that have no destructors but only UnwindAction::Terminate is considered as plain-old-frame (POF) and forced unwind is allowed to unwind past it; so this is treated as None during forced unwind.

Terminate

Process should be terminated as the call site does not permit unwinding.

Auto Trait Implementations

impl !Send for EHAction

impl !Sync for EHAction

impl Freeze for EHAction

impl RefUnwindSafe for EHAction

impl Unpin for EHAction

impl UnsafeUnpin for EHAction

impl UnwindSafe for EHAction

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

impl<T> From<T> for EHAction

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> SizeHint for EHAction where T: ?Sized,

fn lower_bound(&self) -> usize
fn upper_bound(&self) -> Option<usize>

impl<T> SizedTypeProperties for EHAction

impl<T, U> Into<U> for EHAction 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.

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

type Error = never;
fn try_from(value: U) -> Result<T, never>

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

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