fetch contact lists
If we don't have a contact list, make sure to fetch one Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
37
src/error.rs
37
src/error.rs
@@ -1,5 +1,10 @@
|
||||
use std::{fmt, io};
|
||||
|
||||
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
|
||||
pub enum FilterError {
|
||||
EmptyContactList,
|
||||
}
|
||||
|
||||
#[derive(Debug, Eq, PartialEq, Copy, Clone)]
|
||||
pub enum SubscriptionError {
|
||||
//#[error("No active subscriptions")]
|
||||
@@ -36,8 +41,8 @@ impl fmt::Display for SubscriptionError {
|
||||
#[derive(Debug)]
|
||||
pub enum Error {
|
||||
SubscriptionError(SubscriptionError),
|
||||
Filter(FilterError),
|
||||
LoadFailed,
|
||||
EmptyContactList,
|
||||
Io(io::Error),
|
||||
Nostr(enostr::Error),
|
||||
Ndb(nostrdb::Error),
|
||||
@@ -45,17 +50,33 @@ pub enum Error {
|
||||
Generic(String),
|
||||
}
|
||||
|
||||
impl Error {
|
||||
pub fn empty_contact_list() -> Self {
|
||||
Error::Filter(FilterError::EmptyContactList)
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for FilterError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Self::EmptyContactList => {
|
||||
write!(f, "empty contact list")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for Error {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
Self::SubscriptionError(sub_err) => {
|
||||
write!(f, "{sub_err}")
|
||||
Self::SubscriptionError(e) => {
|
||||
write!(f, "{e}")
|
||||
}
|
||||
Self::LoadFailed => {
|
||||
write!(f, "load failed")
|
||||
}
|
||||
Self::EmptyContactList => {
|
||||
write!(f, "empty contact list")
|
||||
Self::Filter(e) => {
|
||||
write!(f, "{e}")
|
||||
}
|
||||
Self::Nostr(e) => write!(f, "{e}"),
|
||||
Self::Ndb(e) => write!(f, "{e}"),
|
||||
@@ -95,3 +116,9 @@ impl From<io::Error> for Error {
|
||||
Error::Io(err)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<FilterError> for Error {
|
||||
fn from(err: FilterError) -> Self {
|
||||
Error::Filter(err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user