fn peek(&self) -> Option<char> {
        if self.is_at_end() {
            None
        } else {
            Some(self.indices[self.current].1)
        }
    }
/// Returns what char would have been returned by self.advance,
/// but doesn't consume it.
Returns what char would have been returned by self.advance,
but doesn't consume it.
Returns what char would have been returned by self . advance but doesn ' t consume it .
fn peek(&self) -> Option<char> {
        if self.is_at_end() {
            None
        } else {
            Some(self.indices[self.current].1)
        }
    }
fn peek ( & self ) -> Option < char > { if self . is_at_end ( ) { None } else { Some ( self . indices [ self . current ] . 1 ) } }
Returns what char would have been returned by self.advance,
but doesn't consume it.
Returns what char would have been returned by self . advance but doesn ' t consume it .
&self
&self