lib

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

error.rs (2025B)


      1 use thiserror::Error;
      2 
      3 #[derive(Debug, Error)]
      4 pub enum RadrootsNostrError {
      5     #[cfg(feature = "client")]
      6     #[error("Client error: {0}")]
      7     ClientError(#[from] nostr_sdk::client::Error),
      8 
      9     #[cfg(feature = "client")]
     10     #[error("Database error: {0}")]
     11     DatabaseError(#[from] nostr_sdk::prelude::DatabaseError),
     12 
     13     #[cfg(feature = "client")]
     14     #[error("Client configuration error: {0}")]
     15     ClientConfigError(String),
     16 
     17     #[error("Event error: {0}")]
     18     EventError(#[from] nostr::event::Error),
     19 
     20     #[error("Event not found: {0}")]
     21     EventNotFound(String),
     22 
     23     #[error("Event builder failure: {0}")]
     24     EventBuildError(#[from] nostr::event::builder::Error),
     25 
     26     #[cfg(feature = "events")]
     27     #[error("Draft error: {0}")]
     28     DraftError(#[from] radroots_events::draft::RadrootsDraftError),
     29 
     30     #[cfg(feature = "events")]
     31     #[error(
     32         "Frozen draft signer public key mismatch: expected {expected_pubkey}, got {actual_pubkey}"
     33     )]
     34     FrozenDraftPubkeyMismatch {
     35         expected_pubkey: String,
     36         actual_pubkey: String,
     37     },
     38 
     39     #[cfg(feature = "events")]
     40     #[error("Frozen draft event ID mismatch: expected {expected_event_id}, got {actual_event_id}")]
     41     FrozenDraftEventIdMismatch {
     42         expected_event_id: String,
     43         actual_event_id: String,
     44     },
     45 
     46     #[error("Key error: {0}")]
     47     KeyError(#[from] nostr::key::Error),
     48 
     49     #[error("Filter tag error: {0}")]
     50     FilterTagError(String),
     51 
     52     #[cfg(feature = "codec")]
     53     #[error("Profile encode error: {0}")]
     54     ProfileEncodeError(#[from] radroots_events_codec::profile::error::ProfileEncodeError),
     55 }
     56 
     57 #[derive(Debug, Error)]
     58 pub enum RadrootsNostrTagsResolveError {
     59     #[error("Missing public key 'p' tag in encrypted event: {0:?}")]
     60     MissingPTag(Box<nostr::Event>),
     61 
     62     #[error("Encrypted event recipient mismatch")]
     63     NotRecipient,
     64 
     65     #[error("Decryption error: {0}")]
     66     DecryptionError(String),
     67 
     68     #[error("Failed to parse decrypted tag JSON: {0}")]
     69     ParseError(#[from] serde_json::Error),
     70 }