pub trait Match<C> {
// Required method
fn try_mat_t<Pat: Regex<C> + ?Sized>(
&mut self,
pat: &Pat
) -> Result<Pat::Ret, Error>;
// Provided methods
fn is_mat<Pat: Regex<C> + ?Sized>(&mut self, pat: &Pat) -> bool { ... }
fn try_mat<Pat: Regex<C, Ret = Span> + ?Sized>(
&mut self,
pat: &Pat
) -> Result<Pat::Ret, Error> { ... }
}