use crate::utils::input::EnvSettingsInput;
use syn::{Attribute, Result};
#[derive(Debug, Default)]
pub(crate) struct EnvSettingsOuterParams {
pub(crate) case_insensitive: bool,
pub(crate) delay: bool,
pub(crate) file_path: Option<String>,
pub(crate) prefix: Option<String>,
}
impl EnvSettingsOuterParams {
pub(crate) fn parse_attributes(attributes: &[Attribute]) -> Result<Self> {
let params = EnvSettingsInput::parse_attributes(attributes)?;
let mut env_settings_outer_params = EnvSettingsOuterParams::default();
if params.contains_key("case_insensitive") {
env_settings_outer_params.case_insensitive = true;
}
if params.contains_key("delay") {
env_settings_outer_params.delay = true;
}
if let Some(file_path) = params.get("file_path") {
file_path.clone_into(&mut env_settings_outer_params.file_path);
}
if let Some(prefix) = params.get("prefix") {
prefix.clone_into(&mut env_settings_outer_params.prefix);
};
Ok(env_settings_outer_params)
}
}