use aws_smithy_runtime_api::client::identity::{
IdentityFuture, ResolveCachedIdentity, ResolveIdentity, SharedIdentityCache,
SharedIdentityResolver,
};
use aws_smithy_runtime_api::shared::IntoShared;
use aws_smithy_types::config_bag::ConfigBag;
mod lazy;
use aws_smithy_runtime_api::client::runtime_components::RuntimeComponents;
pub use lazy::LazyCacheBuilder;
#[non_exhaustive]
pub struct IdentityCache;
impl IdentityCache {
pub fn no_cache() -> SharedIdentityCache {
NoCache.into_shared()
}
pub fn lazy() -> LazyCacheBuilder {
LazyCacheBuilder::new()
}
}
#[derive(Clone, Debug)]
struct NoCache;
impl ResolveCachedIdentity for NoCache {
fn resolve_cached_identity<'a>(
&'a self,
resolver: SharedIdentityResolver,
runtime_components: &'a RuntimeComponents,
config_bag: &'a ConfigBag,
) -> IdentityFuture<'a> {
IdentityFuture::new(async move {
resolver
.resolve_identity(runtime_components, config_bag)
.await
})
}
}