#[non_exhaustive]#[repr(u8)]pub enum ObserverTrapClass {
Panic = 0,
BudgetExceeded = 1,
CapabilityDenied = 2,
Other = 3,
}Expand description
Trap classification for ObserverQuarantine — surfaced into the
chain-anchored receipt so replay + audit can distinguish each
sandbox-boundary failure mode.
Wire-stable enum (mirrors RuntimeSignatureClass / ComplianceTier):
#[repr(u8)] + #[non_exhaustive] so additive expansion is
non-breaking. Each variant has a fixed discriminant so the postcard
wire format stays stable across schema-version bumps.
Mirrored as a host-internal type by arkhe_forge_platform::observer_host
(re-exports this same enum). Single source of truth lives here in
arkhe-forge-core because the value enters the L0 chain via the
ObserverQuarantine event.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Panic = 0
wasm panic / cranelift trap — observer code itself faulted.
BudgetExceeded = 1
Fuel exhaustion — observer exceeded the per-invocation budget.
CapabilityDenied = 2
Observer attempted to call a host-fn for which the active per-invocation capability set lacks the matching token.
Other = 3
Catch-all for cranelift trap variants not classified above (incl. operator host-config errors like “no capability impl registered” — distinguished only at audit-log granularity).
Trait Implementations§
Source§impl Clone for ObserverTrapClass
impl Clone for ObserverTrapClass
Source§fn clone(&self) -> ObserverTrapClass
fn clone(&self) -> ObserverTrapClass
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ObserverTrapClass
impl Debug for ObserverTrapClass
Source§impl<'de> Deserialize<'de> for ObserverTrapClass
impl<'de> Deserialize<'de> for ObserverTrapClass
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ObserverTrapClass, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ObserverTrapClass, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ObserverTrapClass
impl PartialEq for ObserverTrapClass
Source§fn eq(&self, other: &ObserverTrapClass) -> bool
fn eq(&self, other: &ObserverTrapClass) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ObserverTrapClass
impl Serialize for ObserverTrapClass
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Copy for ObserverTrapClass
impl Eq for ObserverTrapClass
impl StructuralPartialEq for ObserverTrapClass
Auto Trait Implementations§
impl Freeze for ObserverTrapClass
impl RefUnwindSafe for ObserverTrapClass
impl Send for ObserverTrapClass
impl Sync for ObserverTrapClass
impl Unpin for ObserverTrapClass
impl UnsafeUnpin for ObserverTrapClass
impl UnwindSafe for ObserverTrapClass
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.