use aws_runtime::env_config::file::EnvConfigFiles as ProfileFiles;
use aws_runtime::env_config::source;
use aws_types::os_shim_internal::{Env, Fs};
use std::borrow::Cow;
pub use aws_runtime::env_config::error::EnvConfigFileLoadError as ProfileFileLoadError;
pub use aws_runtime::env_config::parse::EnvConfigParseError as ProfileParseError;
pub use aws_runtime::env_config::property::Property;
pub use aws_runtime::env_config::section::{EnvConfigSections as ProfileSet, Profile};
#[doc = include_str!("location_of_profile_files.md")]
pub async fn load(
fs: &Fs,
env: &Env,
profile_files: &ProfileFiles,
selected_profile_override: Option<Cow<'static, str>>,
) -> Result<ProfileSet, ProfileFileLoadError> {
let mut source = source::load(env, fs, profile_files).await?;
if let Some(profile) = selected_profile_override {
source.profile = profile;
}
Ok(ProfileSet::parse(source)?)
}