pub use google_cloud_auth::credentials::*;
#[derive(Clone, Debug, Default)]
pub enum GoogleCloudStorageCredentials {
#[default]
ApplicationDefault,
Anonymous,
Custom(google_cloud_auth::credentials::Credentials),
}
impl GoogleCloudStorageCredentials {
#[must_use]
pub const fn anonymous() -> Self {
Self::Anonymous
}
#[must_use]
pub fn custom(credentials: google_cloud_auth::credentials::Credentials) -> Self {
Self::Custom(credentials)
}
}
#[cfg(test)]
mod tests {
use super::{Builder, Credentials, GoogleCloudStorageCredentials, anonymous};
#[test]
fn google_cloud_auth_types_are_reexported() {
fn accepts_credentials(_: Credentials) {}
accepts_credentials(anonymous::Builder::new().build());
let _application_default_builder = Builder::default();
}
#[test]
fn default_credentials_use_application_default_credentials() {
assert!(matches!(
GoogleCloudStorageCredentials::default(),
GoogleCloudStorageCredentials::ApplicationDefault
));
}
#[test]
fn anonymous_credentials_are_explicit() {
assert!(matches!(
GoogleCloudStorageCredentials::anonymous(),
GoogleCloudStorageCredentials::Anonymous
));
}
}