mongodb_atlas_cli/config/source/
global.rs

1use std::{collections::HashMap, path::PathBuf};
2
3use config::{ConfigError, Source, Value};
4
5use super::config_value_from_toml_file;
6
7#[derive(Clone, Debug)]
8pub struct AtlasCLIGlobalConfigSource {
9    source: PathBuf,
10}
11
12impl AtlasCLIGlobalConfigSource {
13    pub fn new(source: impl Into<PathBuf>) -> Self {
14        Self {
15            source: source.into(),
16        }
17    }
18}
19
20impl Source for AtlasCLIGlobalConfigSource {
21    fn clone_into_box(&self) -> Box<dyn Source + Send + Sync> {
22        Box::new((*self).clone())
23    }
24
25    fn collect(&self) -> Result<HashMap<String, Value>, ConfigError> {
26        let config = config_value_from_toml_file("global", &self.source, Ok)?;
27
28        Ok(config)
29    }
30}