pub trait Token: Debug {
// Required methods
fn token_type(&self) -> i32;
fn channel(&self) -> i32;
fn start(&self) -> usize;
fn stop(&self) -> usize;
fn token_index(&self) -> isize;
fn line(&self) -> usize;
fn column(&self) -> usize;
fn text(&self) -> Option<&str>;
fn source_name(&self) -> &str;
// Provided method
fn interval(&self) -> TextInterval { ... }
}