use std::collections::BTreeMap; use crate::context::GlobalSettings; use crate::types::AffiliatedKeywordValue; use crate::types::AffiliatedKeywords; use crate::types::Keyword; use crate::types::Object; use crate::types::PlainList; pub(crate) fn parse_affiliated_keywords<'g, 's>( global_settings: &'g GlobalSettings<'g, 's>, input: Vec>, ) -> AffiliatedKeywords<'s> { let mut ret = BTreeMap::new(); for kw in input.into_iter() { // foo } AffiliatedKeywords { keywords: ret } } // pub struct AffiliatedKeyword<'s> { // name: &'s str, // } // pub enum AffiliatedKeywordValue<'s> { // SingleString(&'s str), // ListOfStrings(Vec<&'s str>), // ListOfObjects(Vec>), // } // pub trait GetAffiliatedKeywords<'s> { // type ItemIterator: Iterator>; // fn get_affiliated_keywords<'r: 's>(&'r self) -> Self::ItemIterator; // } // pub trait HandleAffiliatedKeywords<'s> { // fn get_stuff(&self) -> &'s str; // } // impl<'s> GetAffiliatedKeywords<'s> for PlainList<'s> { // type ItemIterator = std::slice::Iter<'s, Keyword<'s>>; // fn get_affiliated_keywords<'r: 's>(&'r self) -> Self::ItemIterator { // self.affiliated_keywords.iter() // } // } // impl<'s, I: GetAffiliatedKeywords<'s>> HandleAffiliatedKeywords<'s> for I { // fn get_stuff(&self) -> &'s str { // self.get_affiliated_keywords().count(); // todo!() // } // }