pub enum DurabilityError {
StoreError(ApiError),
SequenceConflict {
expected: u64,
actual: u64,
},
CursorRegression {
stored: u64,
attempted: u64,
},
DedupCollision {
key: String,
},
ConfigError(String),
EphemeralStoreOpen(String),
EphemeralStoreDetached,
EnvelopeError(String),
}Expand description
Error taxonomy for haematite-backed durability operations.
Variants§
StoreError(ApiError)
Haematite returned a store-level failure.
The umbrella From<haematite::ApiError> conversion lives in
super::store because it routes the optimistic-concurrency variants to
their dedicated cases rather than wrapping them here.
SequenceConflict
An append observed a different stream sequence than the caller expected.
Fields
CursorRegression
A cursor checkpoint attempted to move from a stale stored value.
Fields
DedupCollision
A producer idempotency key collided with an existing dedup entry.
ConfigError(String)
Durability configuration failed validation.
EphemeralStoreOpen(String)
An ephemeral durable store could not be opened on disk.
Raised only on the construction path of a self-owned ephemeral store
(see super::store::open_ephemeral); the guarding temporary directory
is already removed by the time this surfaces.
EphemeralStoreDetached
An operation reached an ephemeral store whose backing database was already detached by teardown.
Unreachable by construction: the store is detached only inside the
ephemeral guard’s Drop, which cannot overlap a live handle’s call.
The variant exists because that detachment is expressed through an
Option the compiler cannot see through, and the fallback must be a
typed refusal rather than a panic.
EnvelopeError(String)
Persisted envelope bytes could not be encoded or decoded.
Trait Implementations§
Source§impl Debug for DurabilityError
impl Debug for DurabilityError
Source§impl Display for DurabilityError
impl Display for DurabilityError
Source§impl Error for DurabilityError
impl Error for DurabilityError
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()
Source§impl From<ApiError> for DurabilityError
Maps a real-engine ApiError onto liminal’s DurabilityError.
impl From<ApiError> for DurabilityError
Maps a real-engine ApiError onto liminal’s DurabilityError.
The optimistic-concurrency variants route to their dedicated DurabilityError
cases (SequenceConflict, CursorRegression); everything else is a
store-level failure carried verbatim.