fn next(&mut self) -> Result<char, LexerError> {
        match self.buffer.next() {
            Some(ch) => Ok(ch),
            None => Err(LexerError::new("finished")),
        }
    }
/// next fetches the next token and return it, or a LexerError if there are no more.
next fetches the next token and return it, or a LexerError if there are no more.
next fetches the next token and return it or a LexerError if there are no more .
fn next(&mut self) -> Result<char, LexerError> {
        match self.buffer.next() {
            Some(ch) => Ok(ch),
            None => Err(LexerError::new("finished")),
        }
    }
fn next ( & mut self ) -> Result < char , LexerError > { match self . buffer . next ( ) { Some ( ch ) => Ok ( ch ) , None => Err ( LexerError :: new ( " " ) ) , } }
next fetches the next token and return it, or a LexerError if there are no more.
next fetches the next token and return it or a LexerError if there are no more .
&mut self
&mut self