fn read_line(&mut self) -> Result<String, LexerError> {
        let mut buf = String::new();
        loop {
            let ch = self.next()?;
            match ch {
                _ if ch.is_ascii_control() => {
                    break;
                }
                _ => {
                    buf.push(ch);
                }
            }
        }

        Ok(buf)
    }
/// read_line attempts to read until the end of the line and returns the String object or a LexerError
read_line attempts to read until the end of the line and returns the String object or a LexerError
read_line attempts to read until the end of the line and returns the String object or a LexerError
fn read_line(&mut self) -> Result<String, LexerError> {
        let mut buf = String::new();
        loop {
            let ch = self.next()?;
            match ch {
                _ if ch.is_ascii_control() => {
                    break;
                }
                _ => {
                    buf.push(ch);
                }
            }
        }
        Ok(buf)
    }
fn read_line ( & mut self ) -> Result < String , LexerError > { let mut buf = String :: new ( ) ; loop { let ch = self . next ( ) ? ; match ch { _ if ch . is_ascii_control ( ) => { break ; } _ => { buf . push ( ch ) ; } } } Ok ( buf ) }
read_line attempts to read until the end of the line and returns the String object or a LexerError
read_line attempts to read until the end of the line and returns the String object or a LexerError
&mut self
&mut self