pub enum EvalError {
Timeout,
Unavailable(String),
Failed(String),
}Expand description
Why an evaluator could not produce an Outcome.
A PolicyTree’s evaluation treats any
EvalError as a refusal of the subject it was judging — fail-closed,
scoped to exactly the writes that evaluator was asked about. It never
escalates an error into Outcome::Freeze on its own: freezing an
account is a judgement about the account, not a side effect of
infrastructure being unavailable.
Variants§
Timeout
The evaluator did not answer within its caller-enforced deadline.
The evaluator’s view is more than Staleness::BestEffort’s max_lag
behind, or it could not be reached at all.
Failed(String)
The evaluator was reached and answered, but the answer was not a verdict — a crash, a malformed response, an internal invariant it caught itself violating.
Trait Implementations§
Source§impl Error for EvalError
impl Error for EvalError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
impl Eq for EvalError
impl StructuralPartialEq for EvalError
Auto Trait Implementations§
impl Freeze for EvalError
impl RefUnwindSafe for EvalError
impl Send for EvalError
impl Sync for EvalError
impl Unpin for EvalError
impl UnsafeUnpin for EvalError
impl UnwindSafe for EvalError
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.