use super::Pattern;
pub trait PatternSearcher {
type Output;
type Iter: Iterator<Item = Self::Output>;
fn find_all(&self, pat: Pattern) -> crate::Result<Self::Iter>;
fn find_first(&self, pat: Pattern) -> crate::Result<Option<Self::Output>> {
Ok(self.find_all(pat)?.next())
}
}