lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

error.rs (1448B)


      1 #![forbid(unsafe_code)]
      2 
      3 use thiserror::Error;
      4 
      5 #[derive(Debug, Error)]
      6 pub enum RadrootsOutboxError {
      7     #[error("SQLx error: {0}")]
      8     Sqlx(#[from] sqlx::Error),
      9 
     10     #[error("JSON error: {0}")]
     11     Json(#[from] serde_json::Error),
     12 
     13     #[error("Event store error: {0}")]
     14     EventStore(#[from] radroots_event_store::RadrootsEventStoreError),
     15 
     16     #[error("Signed event does not match frozen draft: {0}")]
     17     SignedEventDraftMismatch(#[from] radroots_events::draft::RadrootsDraftError),
     18 
     19     #[error("target relays cannot be empty")]
     20     EmptyTargetRelays,
     21 
     22     #[error("Invalid stored enum for {field}: {value}")]
     23     InvalidStoredEnum { field: &'static str, value: String },
     24 
     25     #[error("Idempotency conflict for {operation_kind}/{expected_pubkey}/{idempotency_key}")]
     26     IdempotencyConflict {
     27         operation_kind: String,
     28         expected_pubkey: String,
     29         idempotency_key: String,
     30         existing_digest: String,
     31         new_digest: String,
     32     },
     33 
     34     #[error("Outbox event not found: {0}")]
     35     EventNotFound(i64),
     36 
     37     #[error("Claim token mismatch for outbox event {outbox_event_id}")]
     38     ClaimTokenMismatch { outbox_event_id: i64 },
     39 
     40     #[error("Signed event missing for outbox event {0}")]
     41     MissingSignedEvent(i64),
     42 
     43     #[error("Signed event ID mismatch: expected {expected_event_id}, got {actual_event_id}")]
     44     SignedEventIdMismatch {
     45         expected_event_id: String,
     46         actual_event_id: String,
     47     },
     48 }