use dioxus::prelude::*; use thiserror::Error; #[derive(Error, Debug)] pub enum DashboardError { #[error("Database error: {0}")] Database(#[from] mongodb::error::Error), #[error("HTTP error: {0}")] Http(#[from] reqwest::Error), #[error("JSON error: {0}")] Json(#[from] serde_json::Error), #[error("Configuration error: {0}")] Config(String), #[error("{0}")] Other(String), } impl From for ServerFnError { fn from(err: DashboardError) -> Self { ServerFnError::new(err.to_string()) } } #[cfg(feature = "server")] impl axum::response::IntoResponse for DashboardError { fn into_response(self) -> axum::response::Response { ( axum::http::StatusCode::INTERNAL_SERVER_ERROR, self.to_string(), ) .into_response() } }