use nostr_database::{flatbuffers, DatabaseError};
use rusqlite::types::FromSqlError;
use thiserror::Error;
use tokio::task::JoinError;
use crate::migration::MigrationError;
#[derive(Debug, Error)]
pub enum Error {
#[error(transparent)]
Sqlite(#[from] rusqlite::Error),
#[error(transparent)]
Thread(#[from] JoinError),
#[error(transparent)]
Migration(#[from] MigrationError),
#[error(transparent)]
FromSql(#[from] FromSqlError),
#[error(transparent)]
Flatbuffers(#[from] flatbuffers::Error),
#[error(transparent)]
Url(#[from] nostr::types::url::ParseError),
#[error("sqlite: {0} not found")]
NotFound(String),
}
impl From<Error> for DatabaseError {
fn from(e: Error) -> Self {
Self::backend(e)
}
}