blindplane_access/
error.rs1#[derive(Clone, Debug, Eq, PartialEq)]
5pub enum AccessError {
6 Truncated,
8 TrailingBytes,
10 UnsupportedVersion(u16),
12 WrongObjectType,
14 InvalidIdentifier,
16 InvalidUtf8,
18 LengthLimit(usize),
20 InvalidEpoch,
22 InvalidKeyIdentity,
24 NonCanonicalEncoding,
26 DuplicateRule,
28 InvalidSignature,
30 UntrustedIssuer,
32 SubjectMismatch,
34 NotYetValid,
36 Expired,
38 StaleRevision,
40 Revoked,
42 InvalidPermissions,
44 CryptographicFailure,
46}
47
48impl core::fmt::Display for AccessError {
49 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
50 match self {
51 Self::Truncated => f.write_str("access object is truncated"),
52 Self::TrailingBytes => f.write_str("access object has trailing bytes"),
53 Self::UnsupportedVersion(version) => {
54 write!(f, "unsupported access object version {version}")
55 }
56 Self::WrongObjectType => f.write_str("wrong access object type"),
57 Self::InvalidIdentifier => f.write_str("invalid access identifier"),
58 Self::InvalidUtf8 => f.write_str("access identifier is not UTF-8"),
59 Self::LengthLimit(length) => write!(f, "access length {length} exceeds its limit"),
60 Self::InvalidEpoch => f.write_str("invalid access epoch or revision"),
61 Self::InvalidKeyIdentity => f.write_str("invalid access key identity"),
62 Self::NonCanonicalEncoding => f.write_str("non-canonical access object encoding"),
63 Self::DuplicateRule => f.write_str("duplicate capability rule"),
64 Self::InvalidSignature => f.write_str("invalid access object signature"),
65 Self::UntrustedIssuer => f.write_str("access object issuer is not trusted"),
66 Self::SubjectMismatch => {
67 f.write_str("access object tenant, subject, or scope does not match")
68 }
69 Self::NotYetValid => f.write_str("access object is not active yet"),
70 Self::Expired => f.write_str("access object has expired"),
71 Self::StaleRevision => f.write_str("access object revision is stale"),
72 Self::Revoked => f.write_str("access object epoch has been revoked"),
73 Self::InvalidPermissions => f.write_str("invalid access permissions"),
74 Self::CryptographicFailure => f.write_str("access cryptographic operation failed"),
75 }
76 }
77}
78
79impl std::error::Error for AccessError {}