fn separate_terms(terms: Vec<Term>) -> (Vec<EventType>, Vec<Condition>) {
    terms
        .into_iter()
        .fold((Vec::new(), Vec::new()), |mut v, t| {
            match t {
                Term::EventType(et) => v.0.push(et),
                Term::Condition(c) => v.1.push(c),
            }
            v
        })
}
// Separate a list of terms into lists of each type of term.
Separate a list of terms into lists of each type of term.
Separate a list of terms into lists of each type of term .
fn separate_terms(terms: Vec<Term>) -> (Vec<EventType>, Vec<Condition>) {
    terms
        .into_iter()
        .fold((Vec::new(), Vec::new()), |mut v, t| {
            match t {
                Term::EventType(et) => v.0.push(et),
                Term::Condition(c) => v.1.push(c),
            }
            v
        })
}
fn separate_terms ( terms : Vec < Term > ) -> ( Vec < EventType > , Vec < Condition > ) { terms . into_iter ( ) . fold ( ( Vec :: new ( ) , Vec :: new ( ) ) , | mut v , t | { match t { Term :: EventType ( et ) => v . 0 . push ( et ) , Term :: Condition ( c ) => v . 1 . push ( c ) , } v } ) }
Separate a list of terms into lists of each type of term.
Separate a list of terms into lists of each type of term .
terms
Vec<Term>