1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use std::fmt; use {TextFrame, Error}; /// A general tokenizer interface. pub trait Tokenize<'a> { /// Token type. type Token: fmt::Debug; /// Constructs a new `Tokenizer` from string. fn from_str(text: &'a str) -> Self; /// Constructs a new `Tokenizer` from [`TextFrame`]. /// [`TextFrame`]: struct.TextFrame.html fn from_frame(text: TextFrame<'a>) -> Self; /// Parses a next token. fn parse_next(&mut self) -> Result<Self::Token, Error>; }