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

rename bitbuffer/bitstream to bitreadbuffer/bitreadstream

This commit is contained in:
Robin Appelman 2020-02-12 23:53:59 +01:00
commit 6fc3785fc9
8 changed files with 227 additions and 226 deletions

View file

@ -108,27 +108,27 @@
//! If the struct that `BitRead` or `BitReadSized` is derived for requires a Endianness type parameter, you need to tell the derive macro the name of the type parameter used
//!
//! ```
//! # use bitbuffer::{BitRead, Endianness, BitStream};
//! # use bitbuffer::{BitRead, Endianness, BitReadStream};
//! #
//! #[derive(BitRead)]
//! #[endianness = "E"]
//! struct EndiannessStruct<E: Endianness> {
//! size: u8,
//! #[size = "size"]
//! stream: BitStream<E>,
//! stream: BitReadStream<E>,
//! }
//! ```
//!
//! This is also required if you specify which endianness the struct has
//! ```
//! # use bitbuffer::{BitRead, BigEndian, BitStream};
//! # use bitbuffer::{BitRead, BigEndian, BitReadStream};
//! #
//! #[derive(BitRead)]
//! #[endianness = "BigEndian"]
//! struct EndiannessStruct {
//! size: u8,
//! #[size = "size"]
//! stream: BitStream<BigEndian>,
//! stream: BitReadStream<BigEndian>,
//! }
//! ```
extern crate proc_macro;
@ -221,7 +221,7 @@ fn derive_bitread_trait(
//
let expanded = quote! {
impl #impl_generics #trait_def for #name #ty_generics #where_clause {
fn read(stream: &mut ::bitbuffer::BitStream<#endianness_ident>#extra_param) -> ::bitbuffer::Result<Self> {
fn read(stream: &mut ::bitbuffer::BitReadStream<#endianness_ident>#extra_param) -> ::bitbuffer::Result<Self> {
// if the read has a predicable size, we can do the bounds check in one go
match <Self as #trait_def>::#size_method_name(#extra_param_call) {
Some(size) => {
@ -236,7 +236,7 @@ fn derive_bitread_trait(
}
}
unsafe fn read_unchecked(stream: &mut ::bitbuffer::BitStream<#endianness_ident>#extra_param) -> ::bitbuffer::Result<Self> {
unsafe fn read_unchecked(stream: &mut ::bitbuffer::BitReadStream<#endianness_ident>#extra_param) -> ::bitbuffer::Result<Self> {
#parsed_unchecked
}

View file

@ -2,7 +2,8 @@
#![allow(unreachable_patterns)]
use bitbuffer::{
bit_size_of, bit_size_of_sized, BigEndian, BitBuffer, BitStream, Endianness, LittleEndian,
bit_size_of, bit_size_of_sized, BigEndian, BitReadBuffer, BitReadStream, Endianness,
LittleEndian,
};
use bitbuffer_derive::{BitRead, BitReadSized};
@ -44,8 +45,8 @@ fn test_read_struct() {
0b0101_0101,
0b1010_1010,
];
let buffer = BitBuffer::new(bytes, LittleEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, LittleEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(
TestStruct {
foo: 12,
@ -82,8 +83,8 @@ fn test_read_bare_enum() {
0b1000_0100,
0b1000_0100,
];
let buffer = BitBuffer::new(bytes, BigEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, BigEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(TestBareEnum::Asd, stream.read().unwrap());
assert_eq!(TestBareEnum::Foo, stream.read().unwrap());
assert_eq!(TestBareEnum::Bar, stream.read().unwrap());
@ -113,8 +114,8 @@ fn test_read_unnamed_field_enum() {
0b1000_0100,
0b1000_0100,
];
let buffer = BitBuffer::new(bytes, BigEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, BigEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(
TestUnnamedFieldEnum::Asd(0b_00_0110_10),
stream.read().unwrap()
@ -143,8 +144,8 @@ fn test_read_struct_sized() {
let bytes = vec![
12, 'h' as u8, 'e' as u8, 'l' as u8, 'l' as u8, 'o' as u8, 0, 0, 0, 0, 0, 0,
];
let buffer = BitBuffer::new(bytes, LittleEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, LittleEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(
TestStructSized {
foo: 12,
@ -179,8 +180,8 @@ fn test_read_unnamed_field_enum_sized() {
0b1000_0100,
0b1000_0100,
];
let buffer = BitBuffer::new(bytes, BigEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, BigEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(
TestUnnamedFieldEnumSized::Asd(0b_00_0110),
stream.read_sized(6).unwrap()
@ -212,8 +213,8 @@ fn test_read_struct2() {
'l' as u8,
'e' as u8,
];
let buffer = BitBuffer::new(bytes, BigEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, BigEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(
TestStruct2 {
size: 5,
@ -229,14 +230,14 @@ fn test_read_struct2() {
struct TestStruct3<E: Endianness> {
size: u8,
#[size = "size"]
stream: BitStream<E>,
stream: BitReadStream<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 buffer = BitReadBuffer::new(bytes, BigEndian);
let mut stream = BitReadStream::from(buffer);
let result: TestStruct3<BigEndian> = stream.read().unwrap();
assert_eq!(5, result.size);
assert_eq!(5, result.stream.bit_len());
@ -264,8 +265,8 @@ fn test_read_rest_enum() {
0b1000_0100,
0b1000_0100,
];
let buffer = BitBuffer::new(bytes, BigEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, BigEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(TestEnumRest::Asd, stream.read().unwrap());
assert_eq!(TestEnumRest::Foo, stream.read().unwrap());
assert_eq!(TestEnumRest::Bar, stream.read().unwrap());
@ -280,8 +281,8 @@ fn test_unnamed_struct() {
let bytes = vec![
12, 'h' as u8, 'e' as u8, 'l' as u8, 'l' as u8, 'o' as u8, 0, 0, 0, 0, 0, 0,
];
let buffer = BitBuffer::new(bytes, LittleEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, LittleEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(
UnnamedSize(12, "hello".to_string(), false),
@ -294,8 +295,8 @@ struct EmptyStruct;
fn test_empty_struct() {
let bytes = vec![0, 0, 0, 0];
let buffer = BitBuffer::new(bytes, BigEndian);
let mut stream = BitStream::from(buffer);
let buffer = BitReadBuffer::new(bytes, BigEndian);
let mut stream = BitReadStream::from(buffer);
assert_eq!(EmptyStruct, stream.read().unwrap());
assert_eq!(0, stream.pos());
assert_eq!(Some(0), bit_size_of::<EmptyStruct>());