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

fix some subbuffer end handling

This commit is contained in:
Robin Appelman 2025-07-14 20:06:45 +02:00
commit eba744fca4
3 changed files with 22 additions and 23 deletions

View file

@ -3,7 +3,9 @@ use std::num::NonZeroU16;
use maplit::hashmap;
use bitbuffer::{BigEndian, BitError, BitRead, BitReadBuffer, BitReadStream, LittleEndian};
use bitbuffer::{
BigEndian, BitError, BitRead, BitReadBuffer, BitReadStream, BitWriteStream, LittleEndian,
};
const BYTES: &[u8] = &[
0b1011_0101,
@ -519,3 +521,19 @@ fn test_invalid_utf8() {
assert_eq!(stream.pos(), 6 * 8);
}
#[test]
fn test_read_string_substream() {
let mut data = Vec::new();
{
let mut write = BitWriteStream::new(&mut data, LittleEndian);
write.write_int(3u32, 3).unwrap();
write.write_string("dummy content", None).unwrap();
}
let mut stream = BitReadStream::<LittleEndian>::from(data.as_slice());
let _ = stream.read_int::<u8>(3).unwrap();
let mut sub = stream.read_bits(5 * 8).unwrap();
let result = sub.read_string(None).unwrap();
assert_eq!("dummy", result);
assert_eq!(5 * 8, sub.pos());
}