fn rewind(&mut self) {
        // recompute the correct row value
        self.row -= self.input[self.start..self.pos]
            .chars()
            .filter(|c| *c == '\n')
            .count();
        self.pos = self.start;

        // recompute the correct column value
        let mut nl = 0;
        if let Some(pos) = self.input[..self.pos].rfind('\n') {
            // don't count the newline itself
            nl = pos + 1;
        }
        self.col = self.input[nl..self.pos].chars().count();

        self.width = 0;
        self.peeked = None;
        self.iter = self.input.char_indices();
        for _ in 0..self.start {
            self.iter.next();
        }
    }
/// `rewind` moves the current position back to the start of the current token.
`rewind` moves the current position back to the start of the current token.
` rewind ` moves the current position back to the start of the current token .
fn rewind(&mut self) {
        // recompute the correct row value
        self.row -= self.input[self.start..self.pos]
            .chars()
            .filter(|c| *c == '\n')
            .count();
        self.pos = self.start;
        // recompute the correct column value
        let mut nl = 0;
        if let Some(pos) = self.input[..self.pos].rfind('\n') {
            // don't count the newline itself
            nl = pos + 1;
        }
        self.col = self.input[nl..self.pos].chars().count();
        self.width = 0;
        self.peeked = None;
        self.iter = self.input.char_indices();
        for _ in 0..self.start {
            self.iter.next();
        }
    }
fn rewind ( & mut self ) { // recompute the correct row value self . row -= self . input [ self . start .. self . pos ] . chars ( ) . filter ( | c | * c == '\n' ) . count ( ) ; self . pos = self . start ; // recompute the correct column value let mut nl = 0 ; if let Some ( pos ) = self . input [ .. self . pos ] . rfind ( '\n' ) { // don't count the newline itself nl = pos + 1 ; } self . col = self . input [ nl .. self . pos ] . chars ( ) . count ( ) ; self . width = 0 ; self . peeked = None ; self . iter = self . input . char_indices ( ) ; for _ in 0 .. self . start { self . iter . next ( ) ; } }
`rewind` moves the current position back to the start of the current token.
` rewind ` moves the current position back to the start of the current token .
&mut self