#[cfg(feature = "cloud")]
mod cloud;
#[cfg(not(feature = "cloud"))]
mod no_cloud;
#[cfg(feature = "cloud")]
pub(crate) use cloud::CloudObject;
#[cfg(not(feature = "cloud"))]
pub use no_cloud::CloudObject;
#[non_exhaustive]
#[derive(Debug, thiserror::Error)]
pub enum CloudError {
#[error(transparent)]
ThirdParty(#[from] Box<dyn std::error::Error + Send + Sync>),
#[error("{0}")]
Authentication(String),
#[error("unsupported cloud URL: {0}")]
NotACloudUri(String),
#[error("cloud functionality requires the 'cloud' feature")]
FeatureNotEnabled,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum CloudProvider {
S3,
Azure,
Gcs,
}