mirror of
https://codeberg.org/icewind/bitbuffer.git
synced 2026-06-03 16:44:06 +02:00
fix some subbuffer end handling
This commit is contained in:
parent
a6e0767d41
commit
c03bf99c3b
3 changed files with 22 additions and 23 deletions
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue