1
0
Fork 0
mirror of https://codeberg.org/icewind/bitbuffer.git synced 2026-06-03 08:34:07 +02:00

add peek method to read without advancing

This commit is contained in:
Robin Appelman 2023-10-09 15:02:25 +02:00
commit dd1f0f0808
2 changed files with 41 additions and 0 deletions

View file

@ -295,6 +295,20 @@ fn read_trait() {
assert_eq!(Some(0b0110_1010), f);
}
#[test]
fn peek_trait() {
let buffer = BitReadBuffer::new(BYTES, BigEndian);
let mut stream = BitReadStream::new(buffer);
let a: u8 = stream.read().unwrap();
assert_eq!(0b1011_0101, a);
assert_eq!(8, stream.pos());
let b: i8 = stream.peek().unwrap();
assert_eq!(8, stream.pos());
assert_eq!(0b110_1010, b);
let b: i8 = stream.read().unwrap();
assert_eq!(0b110_1010, b);
}
#[test]
fn read_trait_unchecked() {
unsafe {
@ -346,6 +360,15 @@ fn read_sized_trait() {
assert_eq!(0b10u8, result.read_int::<u8>(2).unwrap());
}
#[test]
fn peek_sized_trait() {
let buffer = BitReadBuffer::new(BYTES, BigEndian);
let mut stream = BitReadStream::new(buffer);
let a: u8 = stream.peek_sized(4).unwrap();
assert_eq!(0b1011, a);
assert_eq!(0, stream.pos());
}
#[test]
fn read_sized_trait_unchecked() {
unsafe {