pub fn encompassed_by<T: Eq+Clone>(list: &[T], (delim1, delim2): (T, T)) -> Vec<Vec<T>> {
let mut collected: Vec<Vec<T>> = vec![];
let mut current_collection: Vec<T> = vec![];
let mut nesting_level: usize = 0;
for element in list {
if *element == delim1 {
let will_continue: bool = nesting_level == 0; nesting_level = nesting_level + 1;
if will_continue {continue;}
}
if *element == delim2 {
if nesting_level - 1 > 0 {
nesting_level = nesting_level - 1;
} else if current_collection.len() > 0 { collected.push(current_collection.clone());
current_collection = vec![];
nesting_level = 0;
}
}
if nesting_level > 0 {
current_collection.push(element.clone());
}
}
return collected;
}