use thiserror::Error;
pub use crate::api::GoogleError;
#[derive(Debug, Error)]
pub enum Error {
#[error("an http error occurred: {0}")]
Http(#[from] reqwest::Error),
#[error(transparent)]
NotFound(#[from] NotFoundError),
#[error("permission denied: {0}")]
PermissionDenied(String),
#[error(transparent)]
OtherGoogle(#[from] GoogleError),
#[error("couldn't fetch token: {0}")]
TokenFetch(anyhow::Error),
}
#[derive(Debug, Error)]
pub enum NotFoundError {
#[error("the bucket `{bucket}` was not found")]
Bucket {
bucket: String,
},
#[error("the object `{bucket}/{key}` was not found")]
Object {
bucket: String,
key: String,
},
#[error("{0}")]
Other(String),
}