mirror of
https://codeberg.org/icewind/bitbuffer.git
synced 2026-06-03 16:44:06 +02:00
make write stream borrow the data to allow splitting/reserving
This commit is contained in:
parent
3bc1ece2ab
commit
9bced05a9d
6 changed files with 480 additions and 126 deletions
|
|
@ -2,14 +2,14 @@ use bitbuffer::{BigEndian, BitReadBuffer, BitReadStream, BitWriteStream, LittleE
|
|||
|
||||
#[test]
|
||||
fn test_write_bool_le() {
|
||||
let mut stream = BitWriteStream::new(LittleEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, LittleEndian);
|
||||
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_bool(false).unwrap();
|
||||
stream.write_bool(true).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, LittleEndian));
|
||||
|
||||
assert_eq!(true, read.read_bool().unwrap());
|
||||
|
|
@ -23,14 +23,14 @@ fn test_write_bool_le() {
|
|||
|
||||
#[test]
|
||||
fn test_write_bool_be() {
|
||||
let mut stream = BitWriteStream::new(BigEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, BigEndian);
|
||||
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_bool(false).unwrap();
|
||||
stream.write_bool(true).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, BigEndian));
|
||||
|
||||
assert_eq!(true, read.read_bool().unwrap());
|
||||
|
|
@ -44,13 +44,13 @@ fn test_write_bool_be() {
|
|||
|
||||
#[test]
|
||||
fn test_write_bool_number_le() {
|
||||
let mut stream = BitWriteStream::new(LittleEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, LittleEndian);
|
||||
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_int(3253u16, 16).unwrap();
|
||||
stream.write_int(13253u64, 64).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, LittleEndian));
|
||||
|
||||
assert_eq!(true, read.read_bool().unwrap());
|
||||
|
|
@ -63,13 +63,13 @@ fn test_write_bool_number_le() {
|
|||
|
||||
#[test]
|
||||
fn test_write_bool_number_be() {
|
||||
let mut stream = BitWriteStream::new(BigEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, BigEndian);
|
||||
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_int(3253u16, 16).unwrap();
|
||||
stream.write_int(13253u64, 64).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, BigEndian));
|
||||
|
||||
assert_eq!(1u8, read.read_int(1).unwrap());
|
||||
|
|
@ -82,12 +82,12 @@ fn test_write_bool_number_be() {
|
|||
|
||||
#[test]
|
||||
fn test_write_float_le() {
|
||||
let mut stream = BitWriteStream::new(LittleEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, LittleEndian);
|
||||
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_float(3253.12f32).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, LittleEndian));
|
||||
|
||||
assert_eq!(true, read.read_bool().unwrap());
|
||||
|
|
@ -99,12 +99,12 @@ fn test_write_float_le() {
|
|||
|
||||
#[test]
|
||||
fn test_write_float_be() {
|
||||
let mut stream = BitWriteStream::new(BigEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, BigEndian);
|
||||
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_float(3253.12f32).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, BigEndian));
|
||||
|
||||
assert_eq!(1u8, read.read_int(1).unwrap());
|
||||
|
|
@ -116,13 +116,13 @@ fn test_write_float_be() {
|
|||
|
||||
#[test]
|
||||
fn test_write_string_le() {
|
||||
let mut stream = BitWriteStream::new(LittleEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, LittleEndian);
|
||||
|
||||
stream.write_string("null terminated", None).unwrap();
|
||||
stream.write_string("fixed length1", Some(16)).unwrap();
|
||||
stream.write_string("fixed length2", Some(16)).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, LittleEndian));
|
||||
|
||||
assert_eq!("null terminated", read.read_string(None).unwrap());
|
||||
|
|
@ -132,14 +132,14 @@ fn test_write_string_le() {
|
|||
|
||||
#[test]
|
||||
fn test_write_string_le_unaligned() {
|
||||
let mut stream = BitWriteStream::new(LittleEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, LittleEndian);
|
||||
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_string("null terminated", None).unwrap();
|
||||
stream.write_string("fixed length1", Some(16)).unwrap();
|
||||
stream.write_string("fixed length2", Some(16)).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, LittleEndian));
|
||||
|
||||
assert_eq!(true, read.read_bool().unwrap());
|
||||
|
|
@ -153,13 +153,13 @@ fn test_write_string_le_unaligned() {
|
|||
|
||||
#[test]
|
||||
fn test_write_signed() {
|
||||
let mut stream = BitWriteStream::new(LittleEndian);
|
||||
let mut data = Vec::new();
|
||||
let mut stream = BitWriteStream::new(&mut data, LittleEndian);
|
||||
|
||||
stream.write_bool(true).unwrap();
|
||||
stream.write_int(-17i32, 32).unwrap();
|
||||
stream.write_int(-9i32, 8).unwrap();
|
||||
|
||||
let data = stream.finish();
|
||||
let mut read = BitReadStream::from(BitReadBuffer::new(&data, LittleEndian));
|
||||
|
||||
assert_eq!(true, read.read_bool().unwrap());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue