#buffer #peekable #parser #situations

peek-buffer

通用的带类型缓冲区,能够预览未来!(也可以预览过去。)

1个不稳定版本

0.1.2 2024年6月20日
0.1.1 2024年6月20日
0.1.0 2024年6月20日

#5 in #peekable

GPL-3.0许可证

15KB
289

peek-buffer Crates.io 版本 docs.rs


解析的必备工具。

let mut buffer = PeekBuffer::from("Hello, World!");

// peek without consuming
while let Some(&c) = buffer.peek() {
    println!("{}", c);

    // advance to the next item (char in this situation)
    buffer.advance_char();
    // generally you should use buffer.advance() to move to the next element
    // but if you're parsing a string, you should use buffer.advance_char()
    // since it keeps track of the line and the column the cursor is at.
}

// peek with consuming
buffer.rewind_to_beginning();
while let Some(&c) = buffer.eat() {
    println!("{}", c);
    buffer.advance_char();
}

println!("{}", buffer.len());

无运行时依赖