use thiserror::Error; #[derive(Error, Debug)] pub enum BucketTransferProtocolError { #[error("network connection failed: {0}")] NetworkError(#[source] std::io::Error), #[error("authentication failed: {0}")] AuthenticationError(String), #[error("permission denied: {0}")] PermissionDenied(String), #[error("I/O error: {0}")] IoError(#[source] std::io::Error), #[error("timeout occurred")] Timeout, }