2026-02-19 18:39:01 -05:00
|
|
|
use std::fmt::Display;
|
|
|
|
|
use std::num::TryFromIntError;
|
2026-02-14 13:31:21 -05:00
|
|
|
use std::str::Utf8Error;
|
|
|
|
|
use std::string::FromUtf8Error;
|
|
|
|
|
|
2026-02-25 21:24:42 -05:00
|
|
|
use crate::nix_util::ActivityIdAlreadyInTreeError;
|
|
|
|
|
use crate::nix_util::ActivityIdNotInTreeError;
|
|
|
|
|
|
2026-02-14 13:31:21 -05:00
|
|
|
#[derive(Debug)]
|
|
|
|
|
pub(crate) enum CustomError {
|
|
|
|
|
Static(#[allow(dead_code)] &'static str),
|
|
|
|
|
String(#[allow(dead_code)] String),
|
|
|
|
|
IO(#[allow(dead_code)] std::io::Error),
|
|
|
|
|
TomlSerialize(#[allow(dead_code)] toml::ser::Error),
|
|
|
|
|
TomlDeserialize(#[allow(dead_code)] toml::de::Error),
|
|
|
|
|
Tokio(#[allow(dead_code)] tokio::task::JoinError),
|
|
|
|
|
Serde(#[allow(dead_code)] serde_json::Error),
|
|
|
|
|
Utf8(#[allow(dead_code)] Utf8Error),
|
|
|
|
|
FromUtf8(#[allow(dead_code)] FromUtf8Error),
|
|
|
|
|
PathStripPrefix(#[allow(dead_code)] std::path::StripPrefixError),
|
|
|
|
|
UrlParseError(#[allow(dead_code)] url::ParseError),
|
2026-02-14 22:15:09 -05:00
|
|
|
Migrate(#[allow(dead_code)] sqlx::migrate::MigrateError),
|
|
|
|
|
Sql(#[allow(dead_code)] sqlx::Error),
|
2026-02-19 18:39:01 -05:00
|
|
|
TryFromIntError(#[allow(dead_code)] TryFromIntError),
|
2026-02-25 21:24:42 -05:00
|
|
|
ActivityIdNotInTreeError(#[allow(dead_code)] ActivityIdNotInTreeError),
|
|
|
|
|
ActivityIdAlreadyInTreeError(#[allow(dead_code)] ActivityIdAlreadyInTreeError),
|
2026-02-19 18:39:01 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Display for CustomError {
|
|
|
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
|
|
|
write!(f, "{:?}", self)
|
|
|
|
|
}
|
2026-02-14 13:31:21 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<std::io::Error> for CustomError {
|
|
|
|
|
fn from(value: std::io::Error) -> Self {
|
|
|
|
|
CustomError::IO(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<&'static str> for CustomError {
|
|
|
|
|
fn from(value: &'static str) -> Self {
|
|
|
|
|
CustomError::Static(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<String> for CustomError {
|
|
|
|
|
fn from(value: String) -> Self {
|
|
|
|
|
CustomError::String(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<toml::ser::Error> for CustomError {
|
|
|
|
|
fn from(value: toml::ser::Error) -> Self {
|
|
|
|
|
CustomError::TomlSerialize(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<toml::de::Error> for CustomError {
|
|
|
|
|
fn from(value: toml::de::Error) -> Self {
|
|
|
|
|
CustomError::TomlDeserialize(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<tokio::task::JoinError> for CustomError {
|
|
|
|
|
fn from(value: tokio::task::JoinError) -> Self {
|
|
|
|
|
CustomError::Tokio(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<serde_json::Error> for CustomError {
|
|
|
|
|
fn from(value: serde_json::Error) -> Self {
|
|
|
|
|
CustomError::Serde(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<Utf8Error> for CustomError {
|
|
|
|
|
fn from(value: Utf8Error) -> Self {
|
|
|
|
|
CustomError::Utf8(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<FromUtf8Error> for CustomError {
|
|
|
|
|
fn from(value: FromUtf8Error) -> Self {
|
|
|
|
|
CustomError::FromUtf8(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<std::path::StripPrefixError> for CustomError {
|
|
|
|
|
fn from(value: std::path::StripPrefixError) -> Self {
|
|
|
|
|
CustomError::PathStripPrefix(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<url::ParseError> for CustomError {
|
|
|
|
|
fn from(value: url::ParseError) -> Self {
|
|
|
|
|
CustomError::UrlParseError(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-02-14 22:15:09 -05:00
|
|
|
|
|
|
|
|
impl From<sqlx::migrate::MigrateError> for CustomError {
|
|
|
|
|
fn from(value: sqlx::migrate::MigrateError) -> Self {
|
|
|
|
|
CustomError::Migrate(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<sqlx::Error> for CustomError {
|
|
|
|
|
fn from(value: sqlx::Error) -> Self {
|
|
|
|
|
CustomError::Sql(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-02-19 18:39:01 -05:00
|
|
|
|
|
|
|
|
impl From<TryFromIntError> for CustomError {
|
|
|
|
|
fn from(value: TryFromIntError) -> Self {
|
|
|
|
|
CustomError::TryFromIntError(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-02-25 21:24:42 -05:00
|
|
|
|
|
|
|
|
impl From<ActivityIdNotInTreeError> for CustomError {
|
|
|
|
|
fn from(value: ActivityIdNotInTreeError) -> Self {
|
|
|
|
|
CustomError::ActivityIdNotInTreeError(value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl From<ActivityIdAlreadyInTreeError> for CustomError {
|
|
|
|
|
fn from(value: ActivityIdAlreadyInTreeError) -> Self {
|
|
|
|
|
CustomError::ActivityIdAlreadyInTreeError(value)
|
|
|
|
|
}
|
|
|
|
|
}
|