fn next_char(&mut self) -> Option<char> {
        // Keep looping until we find a char that is not whitespace,
        // or if we reach end of input stream.
        loop {
            match self._next_char() {
                Some(c) => {
                    if !c.is_ascii_whitespace() {
                        return Some(c);
                    }
                    if c == '\n' {
                        self.line_number += 1;
                    }
                }
                None => {
                    // Reached end of input stream
                    return None;
                }
            }
        }
    }
// Return next char in the input stream, skipping whitespace
Return next char in the input stream, skipping whitespace
Return next char in the input stream skipping whitespace
fn next_char(&mut self) -> Option<char> {
        // Keep looping until we find a char that is not whitespace,
        // or if we reach end of input stream.
        loop {
            match self._next_char() {
                Some(c) => {
                    if !c.is_ascii_whitespace() {
                        return Some(c);
                    }
                    if c == '\n' {
                        self.line_number += 1;
                    }
                }
                None => {
                    // Reached end of input stream
                    return None;
                }
            }
        }
    }
fn next_char ( & mut self ) -> Option < char > { // Keep looping until we find a char that is not whitespace, // or if we reach end of input stream. loop { match self . _next_char ( ) { Some ( c ) => { if ! c . is_ascii_whitespace ( ) { return Some ( c ) ; } if c == '\n' { self . line_number += 1 ; } } None => { // Reached end of input stream return None ; } } } }
Return next char in the input stream, skipping whitespace
Return next char in the input stream skipping whitespace
&mut self