#[derive(Debug, thiserror::Error, miette::Diagnostic)]
pub enum WWSVCError {
#[error("The client is not authenticated.")]
#[diagnostic(code(wwsvc_rs::error::WWSVCError::NotAuthenticated))]
NotAuthenticated,
#[error("Missing credentials.")]
#[diagnostic(code(wwsvc_rs::error::WWSVCError::MissingCredentials))]
MissingCredentials,
#[error("Header value contained non-ASCII characters.")]
#[diagnostic(code(wwsvc_rs::error::WWSVCError::HeaderValueToStrError))]
HeaderValueToStrError,
#[error("Invalid header name or value.")]
#[diagnostic(code(wwsvc_rs::error::WWSVCError::InvalidHeader))]
InvalidHeader,
#[error(transparent)]
#[diagnostic(code(wwsvc_rs::error::WWSVCError::ReqwestError))]
ReqwestError(#[from] reqwest::Error),
#[error(transparent)]
#[diagnostic(code(wwsvc_rs::error::WWSVCError::InvalidHeaderValue))]
InvalidHeaderValue(#[from] reqwest::header::InvalidHeaderValue),
#[error(transparent)]
#[diagnostic(code(wwsvc_rs::error::WWSVCError::UrlParseError))]
UrlParseError(#[from] url::ParseError),
}