use crate::auth::credentials::CredentialsProvider;
use mountpoint_s3_crt_sys::aws_signing_config_aws;
use std::ffi::OsString;
use std::fmt::Debug;
use std::marker::PhantomPinned;
use std::pin::Pin;
use std::sync::Arc;
pub(crate) struct SigningConfigInner {
pub(crate) inner: aws_signing_config_aws,
pub(crate) region: OsString,
pub(crate) credentials_provider: CredentialsProvider,
pub(crate) _pinned: PhantomPinned,
}
impl Debug for SigningConfigInner {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("SigningConfigInner")
.field("region", &self.region)
.finish()
}
}
#[derive(Debug, Clone)]
pub struct SigningConfig(pub(crate) Arc<Pin<Box<SigningConfigInner>>>);
impl SigningConfig {
pub(crate) fn to_inner_ptr(&self) -> *const aws_signing_config_aws {
&Pin::as_ref(&self.0).get_ref().inner
}
}