mongodb_atlas_cli/config/source/
global.rs1use 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}