From 8680fbc0fab62e47a7736e5194badba84411ea7f Mon Sep 17 00:00:00 2001 From: jakka Date: Wed, 1 Oct 2025 13:52:04 +0300 Subject: moved types module --- src/sync_lib.rs | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'src/sync_lib.rs') diff --git a/src/sync_lib.rs b/src/sync_lib.rs index fd28c4c..368e5b7 100644 --- a/src/sync_lib.rs +++ b/src/sync_lib.rs @@ -1,3 +1,35 @@ pub mod client; pub mod traits; -pub mod types; + +use thiserror::Error; + +/// Error wrapper +#[derive(Error, Debug)] +pub enum HydrusError { + #[error("failed to connect to Hydrus")] + NetworkError(ureq::Error), + #[error("failed to encode/Deserialize data")] + DeserializeError(serde_json::Error), + #[error("io error")] + IOError(std::io::Error), + #[error("api or session key needed")] + KeyNotSupplied, +} + +impl From for HydrusError { + fn from(value: serde_json::Error) -> Self { + HydrusError::DeserializeError(value) + } +} + +impl From for HydrusError { + fn from(value: std::io::Error) -> Self { + HydrusError::IOError(value) + } +} + +impl From for HydrusError { + fn from(value: ureq::Error) -> Self { + HydrusError::NetworkError(value) + } +} -- cgit v1.3.1