pub trait Spanner { fn next(&mut self, v: char) -> bool; fn valid(&mut self) -> bool; fn span<'b>(&mut self, reader: &mut &'b str) -> Option<&'b str> { ... } }