#[non_exhaustive]pub enum OastError {
Show 27 variants
EmptyAssessmentId,
AssessmentIdTooLong {
actual: usize,
maximum: usize,
},
InvalidAssessmentId,
ZeroOpaqueId,
ZeroLifetime,
LifetimeTooLong {
actual: u64,
maximum: u64,
},
ZeroPollBudget,
PollBudgetTooLarge {
actual: u16,
maximum: u16,
},
ZeroAuthorityLimit,
AuthorityLimitTooLarge,
EmptyProtocolSet,
RegistrationCapacityExhausted,
TokenAlreadyRegistered,
VerificationBindingTooLarge,
LifetimeGrantExceeded {
requested: u64,
maximum: u64,
},
PollGrantExceeded {
requested: u16,
maximum: u16,
},
ExpiryOverflow,
BindingMismatch,
CorrelationMismatch,
ProtocolNotAllowed {
protocol: OastEventProtocol,
},
ClockRegressed {
previous: OastMonotonicTime,
current: OastMonotonicTime,
},
Expired {
expires_at: OastMonotonicTime,
},
Cancelled,
PollBudgetExhausted,
PollEventLimitExceeded {
maximum: u16,
},
UniqueEventLimitExceeded {
maximum: u16,
},
EventKeyProtocolConflict,
}Expand description
Validation and state-transition failures for OAST correlation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
EmptyAssessmentId
The assessment identity was empty.
AssessmentIdTooLong
The assessment identity exceeded its bound.
InvalidAssessmentId
The assessment identity contained a disallowed byte.
ZeroOpaqueId
An opaque 32-byte value used the reserved all-zero sentinel.
ZeroLifetime
The lifetime was zero.
LifetimeTooLong
The lifetime exceeded the hard foundation bound.
ZeroPollBudget
The poll budget was zero.
PollBudgetTooLarge
The poll budget exceeded the hard foundation bound.
ZeroAuthorityLimit
At least one authority limit was zero.
AuthorityLimitTooLarge
One authority limit exceeded its hard foundation bound.
EmptyProtocolSet
No callback protocol was allowed.
RegistrationCapacityExhausted
The authority epoch reached its registration limit.
TokenAlreadyRegistered
The token had already been consumed in this authority epoch.
VerificationBindingTooLarge
A verification-case identity component exceeded the OAST binding bound.
LifetimeGrantExceeded
The requested lifetime exceeded the authority grant.
PollGrantExceeded
The requested poll budget exceeded the authority grant.
ExpiryOverflow
Adding lifetime to the issued time overflowed.
BindingMismatch
Assessment or verification-case identity did not match exactly.
CorrelationMismatch
A callback was routed with another correlation identity.
ProtocolNotAllowed
A callback used a protocol outside the registration grant.
Fields
protocol: OastEventProtocolRejected protocol.
ClockRegressed
The injected monotonic time moved backwards.
Expired
The correlation is expired.
Fields
expires_at: OastMonotonicTimeExclusive expiry boundary.
Cancelled
The correlation was cancelled.
PollBudgetExhausted
Every poll in the grant was spent.
PollEventLimitExceeded
A staged poll exceeded its event bound.
UniqueEventLimitExceeded
Atomic completion would exceed the registration unique-event bound.
EventKeyProtocolConflict
One event key was observed under two distinct protocol families.
Trait Implementations§
impl Eq for OastError
Source§impl Error for OastError
impl Error for OastError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
impl StructuralPartialEq for OastError
Auto Trait Implementations§
impl Freeze for OastError
impl RefUnwindSafe for OastError
impl Send for OastError
impl Sync for OastError
impl Unpin for OastError
impl UnsafeUnpin for OastError
impl UnwindSafe for OastError
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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,
§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
§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
key and return true if they are equal.