mirror of
https://codeberg.org/icewind/bitbuffer.git
synced 2026-06-03 16:44:06 +02:00
allow deriving traits for struct with endianness
This commit is contained in:
parent
6e36d00c1e
commit
b150308d6a
2 changed files with 90 additions and 52 deletions
|
|
@ -1,4 +1,4 @@
|
|||
use bitstream_reader::{BigEndian, BitBuffer, BitStream, LittleEndian};
|
||||
use bitstream_reader::{BigEndian, BitBuffer, BitStream, Endianness, LittleEndian};
|
||||
use bitstream_reader_derive::{BitRead, BitReadSized};
|
||||
|
||||
#[derive(BitRead, PartialEq, Debug)]
|
||||
|
|
@ -212,3 +212,21 @@ fn test_read_struct2() {
|
|||
stream.read().unwrap()
|
||||
);
|
||||
}
|
||||
|
||||
#[derive(BitRead)]
|
||||
#[endianness = "E"]
|
||||
struct TestStruct3<E: Endianness> {
|
||||
size: u8,
|
||||
#[size = "size"]
|
||||
stream: BitStream<E>,
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_read_struct3() {
|
||||
let bytes = vec![0b0000_0101, 0, 0, 0, 0, 0, 0, 0];
|
||||
let buffer = BitBuffer::new(bytes, BigEndian);
|
||||
let mut stream = BitStream::from(buffer);
|
||||
let result: TestStruct3<BigEndian> = stream.read().unwrap();
|
||||
assert_eq!(5, result.size);
|
||||
assert_eq!(5, result.stream.bit_len());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue