use httpsig::prelude::HttpSigError;
use thiserror::Error;
pub type HyperSigResult<T> = std::result::Result<T, HyperSigError>;
#[derive(Error, Debug)]
pub enum HyperSigError {
#[error("No signature headers found: {0}")]
NoSignatureHeaders(String),
#[error("Failed to stringify signature headers: {0}")]
FailedToStrSignatureHeaders(#[from] http::header::ToStrError),
#[error("Failed to parse header value: {0}")]
InvalidHeaderValue(#[from] http::header::InvalidHeaderValue),
#[error("Invalid component name: {0}")]
InvalidComponentName(String),
#[error("Invalid component param: {0}")]
InvalidComponentParam(String),
#[error("Invalid signature: {0}")]
InvalidSignature(String),
#[error("HttpSigError: {0}")]
HttpSigError(#[from] HttpSigError),
}
pub type HyperDigestResult<T> = std::result::Result<T, HyperDigestError>;
#[derive(Error, Debug)]
pub enum HyperDigestError {
#[error("Http body error: {0}")]
HttpBodyError(String),
#[error("No content-digest header found: {0}")]
NoDigestHeader(String),
#[error("Failed to parse header value: {0}")]
InvalidHeaderValue(String),
#[error("Failed to stringify content-digest header: {0}")]
FailedToStrDigestHeader(#[from] http::header::ToStrError),
#[error("Invalid content-digest: {0}")]
InvalidContentDigest(String),
#[error("Invalid content-digest type: {0}")]
InvalidContentDigestType(String),
}