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 }