#[derive(Debug, PartialEq, Eq)] pub enum Comparison { Equal, Sublist, Superlist, Unequal, } pub fn sublist(fst: &[T], snd: &[T]) -> Comparison { match (fst.len(),snd.len()) { (0,0) => Comparison::Equal, (0,_) => Comparison::Sublist, (_,0) => Comparison::Superlist, (n,m) if n < m && snd.windows(n).any(|s| fst == s) => Comparison::Sublist, (n,m) if n > m && fst.windows(m).any(|f| snd == f) => Comparison::Superlist, _ if fst == snd => Comparison::Equal, _ => Comparison::Unequal } }