pub trait Input: Debug {
// Required methods
fn buffer(&self) -> &[u8] ⓘ;
fn anchored(&self) -> bool;
fn range(&self) -> Range<usize>;
fn start(&self) -> usize;
fn set_start(&mut self, start: usize);
fn set_range(&mut self, range: Range<usize>);
// Provided method
fn as_input(&self) -> Input<'_> { ... }
}