mirror of
https://codeberg.org/icewind/bitbuffer.git
synced 2026-06-03 16:44:06 +02:00
rename to bitbuffer to prepare for writing
This commit is contained in:
parent
0e09a19878
commit
0e58b89ae9
12 changed files with 68 additions and 73 deletions
|
|
@ -1,18 +1,18 @@
|
||||||
[package]
|
[package]
|
||||||
name = "bitstream_reader"
|
name = "bitbuffer"
|
||||||
version = "0.7.1"
|
version = "0.7.1"
|
||||||
authors = ["Robin Appelman <robin@icewind.nl>"]
|
authors = ["Robin Appelman <robin@icewind.nl>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
description = "Reading bit sequences from a byte slice"
|
description = "Reading bit sequences from a byte slice"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
repository = "https://github.com/icewind1991/bitstream_reader"
|
repository = "https://github.com/icewind1991/bitbuffer"
|
||||||
|
|
||||||
[badges]
|
[badges]
|
||||||
travis-ci = { repository = "icewind1991/bitstream_reader" }
|
travis-ci = { repository = "icewind1991/bitbuffer" }
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
bitstream_reader_derive = { version = "0.7", path = "bitstream_reader_derive" }
|
bitbuffer_derive = { version = "0.7", path = "bitbuffer_derive" }
|
||||||
memchr = "2.2"
|
memchr = "2.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|
|
||||||
12
README.md
12
README.md
|
|
@ -1,9 +1,9 @@
|
||||||
[](https://crates.io/crates/bitstream_reader)
|
[](https://crates.io/crates/bitbuffer)
|
||||||
[](https://docs.rs/bitstream_reader/)
|
[](https://docs.rs/bitbuffer/)
|
||||||
[](https://deps.rs/repo/github/icewind1991/bitstream_reader)
|
[](https://deps.rs/repo/github/icewind1991/bitbuffer)
|
||||||
[](https://travis-ci.org/icewind1991/bitstream_reader)
|
[](https://travis-ci.org/icewind1991/bitbuffer)
|
||||||
|
|
||||||
# bitstream_reader
|
# bitbuffer
|
||||||
|
|
||||||
Tools for reading data types of arbitrary bit length and might not be byte-aligned in the source data
|
Tools for reading data types of arbitrary bit length and might not be byte-aligned in the source data
|
||||||
|
|
||||||
|
|
@ -24,7 +24,7 @@ The `BitRead` and `BitReadSized` traits can be used with `#[derive]` if all fiel
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
use bitstream_reader::{BitBuffer, LittleEndian, BitStream, BitRead};
|
use bitbuffer::{BitBuffer, LittleEndian, BitStream, BitRead};
|
||||||
|
|
||||||
#[derive(BitRead)]
|
#[derive(BitRead)]
|
||||||
struct ComplexType {
|
struct ComplexType {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[](https://crates.io/crates/bitstream_reader)
|
[](https://crates.io/crates/bitbuffer)
|
||||||
[](https://docs.rs/bitstream_reader/)
|
[](https://docs.rs/bitbuffer/)
|
||||||
[](https://deps.rs/repo/github/icewind1991/bitstream_reader)
|
[](https://deps.rs/repo/github/icewind1991/bitbuffer)
|
||||||
{{badges}}
|
{{badges}}
|
||||||
|
|
||||||
# {{crate}}
|
# {{crate}}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
extern crate test;
|
extern crate test;
|
||||||
|
|
||||||
use bitstream_reader::{BigEndian, BitBuffer, BitRead, BitStream, Endianness, LittleEndian};
|
use bitbuffer::{BigEndian, BitBuffer, BitRead, BitStream, Endianness, LittleEndian};
|
||||||
use test::Bencher;
|
use test::Bencher;
|
||||||
|
|
||||||
fn read_perf<E: Endianness>(buffer: &BitBuffer<E>) -> u16 {
|
fn read_perf<E: Endianness>(buffer: &BitBuffer<E>) -> u16 {
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
[package]
|
[package]
|
||||||
name = "bitstream_reader_derive"
|
name = "bitbuffer_derive"
|
||||||
version = "0.7.1"
|
version = "0.7.1"
|
||||||
authors = ["Robin Appelman <robin@icewind.nl>"]
|
authors = ["Robin Appelman <robin@icewind.nl>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
description = "Reading bit sequences from a byte slice"
|
description = "Reading bit sequences from a byte slice"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
repository = "https://github.com/icewind1991/bitstream_reader"
|
repository = "https://github.com/icewind1991/bitbuffer"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "bitstream_reader_derive"
|
name = "bitbuffer_derive"
|
||||||
proc-macro = true
|
proc-macro = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
@ -18,4 +18,4 @@ proc-macro2 = "1.0"
|
||||||
syn_util = "0.4"
|
syn_util = "0.4"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
bitstream_reader = { version = "0.7", path = ".." }
|
bitbuffer = { version = "0.7", path = ".." }
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
//! ## Examples
|
//! ## Examples
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
//! use bitstream_reader_derive::BitRead;
|
//! use bitbuffer::BitRead;
|
||||||
//!
|
//!
|
||||||
//! #[derive(BitRead)]
|
//! #[derive(BitRead)]
|
||||||
//! struct TestStruct {
|
//! struct TestStruct {
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
//! use bitstream_reader_derive::BitReadSized;
|
//! use bitbuffer::BitReadSized;
|
||||||
//!
|
//!
|
||||||
//! #[derive(BitReadSized, PartialEq, Debug)]
|
//! #[derive(BitReadSized, PartialEq, Debug)]
|
||||||
//! struct TestStructSized {
|
//! struct TestStructSized {
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
//! ## Examples
|
//! ## Examples
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
//! # use bitstream_reader_derive::BitRead;
|
//! # use bitbuffer::BitRead;
|
||||||
//! #
|
//! #
|
||||||
//! #[derive(BitRead)]
|
//! #[derive(BitRead)]
|
||||||
//! #[discriminant_bits = 2]
|
//! #[discriminant_bits = 2]
|
||||||
|
|
@ -75,7 +75,7 @@
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
//! # use bitstream_reader_derive::BitRead;
|
//! # use bitbuffer::BitRead;
|
||||||
//! #
|
//! #
|
||||||
//! #[derive(BitRead)]
|
//! #[derive(BitRead)]
|
||||||
//! #[discriminant_bits = 2]
|
//! #[discriminant_bits = 2]
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
//! # use bitstream_reader_derive::BitReadSized;
|
//! # use bitbuffer::BitReadSized;
|
||||||
//! #
|
//! #
|
||||||
//! #[derive(BitReadSized, PartialEq, Debug)]
|
//! #[derive(BitReadSized, PartialEq, Debug)]
|
||||||
//! #[discriminant_bits = 2]
|
//! #[discriminant_bits = 2]
|
||||||
|
|
@ -108,8 +108,7 @@
|
||||||
//! 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
|
//! 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 bitstream_reader_derive::BitRead;
|
//! # use bitbuffer::{BitRead, Endianness, BitStream};
|
||||||
//! # use bitstream_reader::{Endianness, BitStream};
|
|
||||||
//! #
|
//! #
|
||||||
//! #[derive(BitRead)]
|
//! #[derive(BitRead)]
|
||||||
//! #[endianness = "E"]
|
//! #[endianness = "E"]
|
||||||
|
|
@ -122,8 +121,7 @@
|
||||||
//!
|
//!
|
||||||
//! This is also required if you specify which endianness the struct has
|
//! This is also required if you specify which endianness the struct has
|
||||||
//! ```
|
//! ```
|
||||||
//! # use bitstream_reader_derive::BitRead;
|
//! # use bitbuffer::{BitRead, BigEndian, BitStream};
|
||||||
//! # use bitstream_reader::{BigEndian, BitStream};
|
|
||||||
//! #
|
//! #
|
||||||
//! #[derive(BitRead)]
|
//! #[derive(BitRead)]
|
||||||
//! #[endianness = "BigEndian"]
|
//! #[endianness = "BigEndian"]
|
||||||
|
|
@ -180,7 +178,7 @@ fn derive_bitread_trait(
|
||||||
if endianness.is_none() {
|
if endianness.is_none() {
|
||||||
trait_generics
|
trait_generics
|
||||||
.params
|
.params
|
||||||
.push(parse_quote!(_E: ::bitstream_reader::Endianness));
|
.push(parse_quote!(_E: ::bitbuffer::Endianness));
|
||||||
}
|
}
|
||||||
let (impl_generics, _, _) = trait_generics.split_for_impl();
|
let (impl_generics, _, _) = trait_generics.split_for_impl();
|
||||||
let span = input.span();
|
let span = input.span();
|
||||||
|
|
@ -195,10 +193,7 @@ fn derive_bitread_trait(
|
||||||
let parsed_unchecked = parse(input.data.clone(), &name, &input.attrs, true);
|
let parsed_unchecked = parse(input.data.clone(), &name, &input.attrs, true);
|
||||||
|
|
||||||
let endianness_placeholder = endianness.unwrap_or_else(|| "_E".to_owned());
|
let endianness_placeholder = endianness.unwrap_or_else(|| "_E".to_owned());
|
||||||
let trait_def_str = format!(
|
let trait_def_str = format!("::bitbuffer::{}<{}>", trait_name, &endianness_placeholder);
|
||||||
"::bitstream_reader::{}<{}>",
|
|
||||||
trait_name, &endianness_placeholder
|
|
||||||
);
|
|
||||||
let trait_def = parse_str::<Path>(&trait_def_str).unwrap();
|
let trait_def = parse_str::<Path>(&trait_def_str).unwrap();
|
||||||
|
|
||||||
let endianness_ident = Ident::new(&endianness_placeholder, span);
|
let endianness_ident = Ident::new(&endianness_placeholder, span);
|
||||||
|
|
@ -226,7 +221,7 @@ fn derive_bitread_trait(
|
||||||
//
|
//
|
||||||
let expanded = quote! {
|
let expanded = quote! {
|
||||||
impl #impl_generics #trait_def for #name #ty_generics #where_clause {
|
impl #impl_generics #trait_def for #name #ty_generics #where_clause {
|
||||||
fn read(stream: &mut ::bitstream_reader::BitStream<#endianness_ident>#extra_param) -> ::bitstream_reader::Result<Self> {
|
fn read(stream: &mut ::bitbuffer::BitStream<#endianness_ident>#extra_param) -> ::bitbuffer::Result<Self> {
|
||||||
// if the read has a predicable size, we can do the bounds check in one go
|
// 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) {
|
match <Self as #trait_def>::#size_method_name(#extra_param_call) {
|
||||||
Some(size) => {
|
Some(size) => {
|
||||||
|
|
@ -241,7 +236,7 @@ fn derive_bitread_trait(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe fn read_unchecked(stream: &mut ::bitstream_reader::BitStream<#endianness_ident>#extra_param) -> ::bitstream_reader::Result<Self> {
|
unsafe fn read_unchecked(stream: &mut ::bitbuffer::BitStream<#endianness_ident>#extra_param) -> ::bitbuffer::Result<Self> {
|
||||||
#parsed_unchecked
|
#parsed_unchecked
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -392,7 +387,7 @@ fn parse(data: Data, struct_name: &Ident, attrs: &[Attribute], unchecked: bool)
|
||||||
Ok(match discriminant {
|
Ok(match discriminant {
|
||||||
#(#match_arms)*
|
#(#match_arms)*
|
||||||
_ => {
|
_ => {
|
||||||
return Err(::bitstream_reader::ReadError::UnmatchedDiscriminant{discriminant, enum_name: #enum_name.to_string()})
|
return Err(::bitbuffer::ReadError::UnmatchedDiscriminant{discriminant, enum_name: #enum_name.to_string()})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -415,12 +410,12 @@ fn size(data: Data, struct_name: &Ident, attrs: &[Attribute], has_input_size: bo
|
||||||
match size {
|
match size {
|
||||||
Some(size) => {
|
Some(size) => {
|
||||||
quote_spanned! { span =>
|
quote_spanned! { span =>
|
||||||
<#field_type as ::bitstream_reader::BitReadSized<::bitstream_reader::LittleEndian>>::bit_size_sized(#size)
|
<#field_type as ::bitbuffer::BitReadSized<::bitbuffer::LittleEndian>>::bit_size_sized(#size)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
quote_spanned! { span =>
|
quote_spanned! { span =>
|
||||||
<#field_type as ::bitstream_reader::BitRead<::bitstream_reader::LittleEndian>>::bit_size()
|
<#field_type as ::bitbuffer::BitRead<::bitbuffer::LittleEndian>>::bit_size()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
#![allow(unreachable_patterns)]
|
#![allow(unreachable_patterns)]
|
||||||
|
|
||||||
use bitstream_reader::{
|
use bitbuffer::{
|
||||||
bit_size_of, bit_size_of_sized, BigEndian, BitBuffer, BitStream, Endianness, LittleEndian,
|
bit_size_of, bit_size_of_sized, BigEndian, BitBuffer, BitStream, Endianness, LittleEndian,
|
||||||
};
|
};
|
||||||
use bitstream_reader_derive::{BitRead, BitReadSized};
|
use bitbuffer_derive::{BitRead, BitReadSized};
|
||||||
|
|
||||||
#[derive(BitRead, PartialEq, Debug)]
|
#[derive(BitRead, PartialEq, Debug)]
|
||||||
struct TestStruct {
|
struct TestStruct {
|
||||||
|
|
@ -21,7 +21,7 @@ const USIZE_SIZE: usize = size_of::<usize>();
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bitstream_reader::{BitBuffer, LittleEndian, Result};
|
/// use bitbuffer::{BitBuffer, LittleEndian, Result};
|
||||||
///
|
///
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// let bytes = vec![
|
/// let bytes = vec![
|
||||||
|
|
@ -53,7 +53,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bitstream_reader::{BitBuffer, LittleEndian};
|
/// use bitbuffer::{BitBuffer, LittleEndian};
|
||||||
///
|
///
|
||||||
/// let bytes = vec![
|
/// let bytes = vec![
|
||||||
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
|
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
|
||||||
|
|
@ -137,7 +137,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -191,7 +191,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -327,7 +327,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -407,7 +407,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -499,7 +499,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,8 @@
|
||||||
//! # Examples
|
//! # Examples
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
//! # use bitstream_reader::Result;
|
//! # use bitbuffer::Result;
|
||||||
//! use bitstream_reader::{BitBuffer, LittleEndian, BitStream, BitRead};
|
//! use bitbuffer::{BitBuffer, LittleEndian, BitStream, BitRead};
|
||||||
//!
|
//!
|
||||||
//! #[derive(BitRead)]
|
//! #[derive(BitRead)]
|
||||||
//! struct ComplexType {
|
//! struct ComplexType {
|
||||||
|
|
@ -59,7 +59,7 @@ use std::fmt;
|
||||||
use std::fmt::Display;
|
use std::fmt::Display;
|
||||||
pub use std::string::FromUtf8Error;
|
pub use std::string::FromUtf8Error;
|
||||||
|
|
||||||
pub use bitstream_reader_derive::{BitRead, BitReadSized};
|
pub use bitbuffer_derive::{BitRead, BitReadSized};
|
||||||
pub use buffer::BitBuffer;
|
pub use buffer::BitBuffer;
|
||||||
pub use endianness::*;
|
pub use endianness::*;
|
||||||
pub use read::{BitRead, BitReadSized, LazyBitRead, LazyBitReadSized};
|
pub use read::{BitRead, BitReadSized, LazyBitRead, LazyBitReadSized};
|
||||||
|
|
|
||||||
10
src/read.rs
10
src/read.rs
|
|
@ -28,7 +28,7 @@ use std::sync::Arc;
|
||||||
/// ## Examples
|
/// ## Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader_derive::BitRead;
|
/// # use bitbuffer::BitRead;
|
||||||
/// #
|
/// #
|
||||||
/// #[derive(BitRead)]
|
/// #[derive(BitRead)]
|
||||||
/// struct TestStruct {
|
/// struct TestStruct {
|
||||||
|
|
@ -61,7 +61,7 @@ use std::sync::Arc;
|
||||||
/// ## Examples
|
/// ## Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader_derive::BitRead;
|
/// # use bitbuffer::BitRead;
|
||||||
/// #
|
/// #
|
||||||
/// #[derive(BitRead)]
|
/// #[derive(BitRead)]
|
||||||
/// #[discriminant_bits = 2]
|
/// #[discriminant_bits = 2]
|
||||||
|
|
@ -73,7 +73,7 @@ use std::sync::Arc;
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader_derive::BitRead;
|
/// # use bitbuffer::BitRead;
|
||||||
/// #
|
/// #
|
||||||
/// #[derive(BitRead)]
|
/// #[derive(BitRead)]
|
||||||
/// #[discriminant_bits = 2]
|
/// #[discriminant_bits = 2]
|
||||||
|
|
@ -356,7 +356,7 @@ impl_read_tuple!(T1, T2, T3, T4);
|
||||||
/// ## Examples
|
/// ## Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader_derive::BitReadSized;
|
/// # use bitbuffer::BitReadSized;
|
||||||
/// #
|
/// #
|
||||||
/// #[derive(BitReadSized, PartialEq, Debug)]
|
/// #[derive(BitReadSized, PartialEq, Debug)]
|
||||||
/// struct TestStructSized {
|
/// struct TestStructSized {
|
||||||
|
|
@ -382,7 +382,7 @@ impl_read_tuple!(T1, T2, T3, T4);
|
||||||
/// ## Examples
|
/// ## Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader_derive::BitReadSized;
|
/// # use bitbuffer::BitReadSized;
|
||||||
/// #
|
/// #
|
||||||
/// #[derive(BitReadSized)]
|
/// #[derive(BitReadSized)]
|
||||||
/// #[discriminant_bits = 2]
|
/// #[discriminant_bits = 2]
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ use std::cmp::min;
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bitstream_reader::{BitBuffer, BitStream, LittleEndian};
|
/// use bitbuffer::{BitBuffer, BitStream, LittleEndian};
|
||||||
///
|
///
|
||||||
/// let bytes = vec![
|
/// let bytes = vec![
|
||||||
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
|
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
|
||||||
|
|
@ -45,7 +45,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bitstream_reader::{BitBuffer, BitStream, LittleEndian};
|
/// use bitbuffer::{BitBuffer, BitStream, LittleEndian};
|
||||||
///
|
///
|
||||||
/// let bytes = vec![
|
/// let bytes = vec![
|
||||||
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
|
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
|
||||||
|
|
@ -73,7 +73,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -118,7 +118,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -169,7 +169,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -220,7 +220,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -268,7 +268,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -345,7 +345,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -386,7 +386,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -425,7 +425,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -459,7 +459,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -482,7 +482,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -507,7 +507,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -532,7 +532,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -551,8 +551,8 @@ where
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// use bitstream_reader::BitRead;
|
/// use bitbuffer::BitRead;
|
||||||
/// #
|
/// #
|
||||||
/// #[derive(BitRead, Debug, PartialEq)]
|
/// #[derive(BitRead, Debug, PartialEq)]
|
||||||
/// struct ComplexType {
|
/// struct ComplexType {
|
||||||
|
|
@ -597,7 +597,7 @@ where
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
@ -614,7 +614,7 @@ where
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
|
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
|
||||||
/// #
|
/// #
|
||||||
/// # fn main() -> Result<()> {
|
/// # fn main() -> Result<()> {
|
||||||
/// # let bytes = vec![
|
/// # let bytes = vec![
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ use std::num::NonZeroU16;
|
||||||
|
|
||||||
use maplit::hashmap;
|
use maplit::hashmap;
|
||||||
|
|
||||||
use bitstream_reader::{BigEndian, BitBuffer, BitRead, BitStream, LittleEndian};
|
use bitbuffer::{BigEndian, BitBuffer, BitRead, BitStream, LittleEndian};
|
||||||
|
|
||||||
const BYTES: &'static [u8] = &[
|
const BYTES: &'static [u8] = &[
|
||||||
0b1011_0101,
|
0b1011_0101,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue