    pub(crate) fn new(map : HashM<String, (usize, ListDefValue)>) -> ListDefMap{
        ListDefMap{ map }
    }

    pub fn get(&self, key : &str) -> Option<&ListDefValue>{ self.map.get(key).map(|(_,v)| v) }
    pub fn get_with_id(&self, key : &str) -> Option<(usize, &ListDefValue)>{ self.map.get(key).map(|(k,v)| (*k,v)) }
    pub fn contains_key(&self, key : &str) -> bool{ self.map.contains_key(key) }
    pub(crate) fn iter(&self) -> ListDefMapIter{ ListDefMapIter{ hash_iter : self.map.iter() } }
    pub fn len(&self) -> usize{ self.map.len() }
}

pub struct ListDefMapIter<'a>{
    hash_iter : Iter<'a, String, (usize, ListDefValue)>,