Skip to main content

bitemporal_runtime/
error.rs

1//! Bitemporal error types.
2
3use thiserror::Error;
4
5/// Errors produced by bitemporal-runtime operations.
6#[derive(Debug, Error)]
7pub enum BitemporalError {
8    /// No record found for the given ID.
9    #[error("record not found: {0}")]
10    RecordNotFound(String),
11
12    /// Duplicate record ID in append operation.
13    #[error("duplicate record ID: {0}")]
14    DuplicateRecordId(String),
15
16    /// Invalid time range (valid_time > recorded_time or similar).
17    #[error("invalid time range: {0}")]
18    InvalidTimeRange(String),
19
20    /// No supersession possible — no prior record to supersede.
21    #[error("no prior record to supersede for ID: {0}")]
22    NoPriorRecord(String),
23
24    /// Database error from underlying storage.
25    #[error("database error: {0}")]
26    DatabaseError(String),
27
28    /// Serialization error.
29    #[error("serialization error: {0}")]
30    SerializationError(String),
31}