#[non_exhaustive]pub enum Error {
Codec(CodecError),
Lease(LeaseError),
Store(StoreError),
Refresh(RefreshError),
Revoked,
PeerKeyMismatch,
NoStandingBinder,
SnapshotContended {
kind: String,
id: String,
attempts: usize,
},
InvalidInput(String),
}Expand description
Top-level cheers error. #[non_exhaustive] so new variants are non-breaking.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Codec(CodecError)
Failure inside the Codec layer.
Lease(LeaseError)
An artifact was minted with a lease that breaks its invariant.
Store(StoreError)
Failure inside a UserStore/CredentialStore/RefreshStore
impl.
Refresh(RefreshError)
Failure inside refresh-token rotation — surfaced by cheers-server’s
SessionAuthority::rotate.
Revoked
A token verified cryptographically but its jti is in the revocation
set — surfaced by cheers-verify’s EdgeVerifier.
PeerKeyMismatch
A token verified cryptographically but is not bound to the peer public
key the caller presented — either it carries no
peer_key at all, or it names a different
one. Surfaced by cheers-verify’s EdgeVerifier::verify_bound_at
(R515): the token holder is not the connecting peer.
NoStandingBinder
A peer-key-bound DeviceBinding::LanPair session was requested from a
SessionAuthority that holds no standing binder (R732-F5). A LAN node
with only a 15-minute access token is the failure the standing binding
exists to remove, so the mint refuses rather than degrade to it.
SnapshotContended
A membership snapshot mint (R732-F4) saw the ownership version move under its closure walk on every attempt: writes to the store are arriving faster than one walk. Retry later.
InvalidInput(String)
Caller passed invalid input that no specific subsystem owns (e.g. an empty subject string, a timestamp outside i64 range).
Trait Implementations§
Source§impl Error for Error
impl Error for Error
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()