use std::collections::BTreeSet; use super::FileAccessInterface; use super::LocalFileAccessInterface; use crate::types::Object; // TODO: Ultimately, I think we'll need most of this: https://orgmode.org/manual/In_002dbuffer-Settings.html #[derive(Debug, Clone)] pub struct GlobalSettings<'g, 's> { pub radio_targets: Vec<&'g Vec>>, pub file_access: &'g dyn FileAccessInterface, pub in_progress_todo_keywords: BTreeSet, pub complete_todo_keywords: BTreeSet, } impl<'g, 's> GlobalSettings<'g, 's> { fn new() -> GlobalSettings<'g, 's> { GlobalSettings { radio_targets: Vec::new(), file_access: &LocalFileAccessInterface { working_directory: None, }, in_progress_todo_keywords: BTreeSet::new(), complete_todo_keywords: BTreeSet::new(), } } } impl<'g, 's> Default for GlobalSettings<'g, 's> { fn default() -> GlobalSettings<'g, 's> { GlobalSettings::new() } }