pub enum FailMode {
Open,
Closed,
}Expand description
Hook crash-handling posture, consumed by G5’s chain runner.
FailMode::Open— when the executor returnsErr(spawn failure, decode failure, timeout, daemon unavailable, …) the chain logs a warning and treats the failed fire asAllow. This is the v0.7 default because the bias on the request path is “fail open, log loudly” — a buggy hook must not brick recall.FailMode::Closed— the chain converts the executor error intoChainResult::Denyand short-circuits the chain. Reserved for hooks that gate compliance-critical paths (PII redaction, regulated-tenant access control) where a silent fail-open is worse than a hard refusal.
The field is optional in hooks.toml; missing entries default to
FailMode::Open so G3-era configs keep their behaviour after
G5 lands.
Variants§
Trait Implementations§
impl Copy for FailMode
Source§impl<'de> Deserialize<'de> for FailMode
impl<'de> Deserialize<'de> for FailMode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for FailMode
impl StructuralPartialEq for FailMode
Auto Trait Implementations§
impl Freeze for FailMode
impl RefUnwindSafe for FailMode
impl Send for FailMode
impl Sync for FailMode
impl Unpin for FailMode
impl UnsafeUnpin for FailMode
impl UnwindSafe for FailMode
Blanket Implementations§
impl<T> Boilerplate for T
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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§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
Compare self to
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more