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

rename to bitbuffer to prepare for writing

This commit is contained in:
Robin Appelman 2020-02-12 23:52:08 +01:00
commit 0e58b89ae9
12 changed files with 68 additions and 73 deletions

View file

@ -1,18 +1,18 @@
[package]
name = "bitstream_reader"
name = "bitbuffer"
version = "0.7.1"
authors = ["Robin Appelman <robin@icewind.nl>"]
edition = "2018"
description = "Reading bit sequences from a byte slice"
license = "MIT OR Apache-2.0"
repository = "https://github.com/icewind1991/bitstream_reader"
repository = "https://github.com/icewind1991/bitbuffer"
[badges]
travis-ci = { repository = "icewind1991/bitstream_reader" }
travis-ci = { repository = "icewind1991/bitbuffer" }
[dependencies]
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"
[dev-dependencies]

View file

@ -1,9 +1,9 @@
[![Crates.io](https://img.shields.io/crates/v/bitstream_reader.svg)](https://crates.io/crates/bitstream_reader)
[![Documentation](https://docs.rs/bitstream_reader/badge.svg)](https://docs.rs/bitstream_reader/)
[![Dependency status](https://deps.rs/repo/github/icewind1991/bitstream_reader/status.svg)](https://deps.rs/repo/github/icewind1991/bitstream_reader)
[![Build Status](https://travis-ci.org/icewind1991/bitstream_reader.svg?branch=master)](https://travis-ci.org/icewind1991/bitstream_reader)
[![Crates.io](https://img.shields.io/crates/v/bitbuffer.svg)](https://crates.io/crates/bitbuffer)
[![Documentation](https://docs.rs/bitbuffer/badge.svg)](https://docs.rs/bitbuffer/)
[![Dependency status](https://deps.rs/repo/github/icewind1991/bitbuffer/status.svg)](https://deps.rs/repo/github/icewind1991/bitbuffer)
[![Build Status](https://travis-ci.org/icewind1991/bitbuffer.svg?branch=master)](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
@ -24,7 +24,7 @@ The `BitRead` and `BitReadSized` traits can be used with `#[derive]` if all fiel
## Examples
```rust
use bitstream_reader::{BitBuffer, LittleEndian, BitStream, BitRead};
use bitbuffer::{BitBuffer, LittleEndian, BitStream, BitRead};
#[derive(BitRead)]
struct ComplexType {

View file

@ -1,6 +1,6 @@
[![Crates.io](https://img.shields.io/crates/v/bitstream_reader.svg)](https://crates.io/crates/bitstream_reader)
[![Documentation](https://docs.rs/bitstream_reader/badge.svg)](https://docs.rs/bitstream_reader/)
[![Dependency status](https://deps.rs/repo/github/icewind1991/bitstream_reader/status.svg)](https://deps.rs/repo/github/icewind1991/bitstream_reader)
[![Crates.io](https://img.shields.io/crates/v/bitbuffer.svg)](https://crates.io/crates/bitbuffer)
[![Documentation](https://docs.rs/bitbuffer/badge.svg)](https://docs.rs/bitbuffer/)
[![Dependency status](https://deps.rs/repo/github/icewind1991/bitbuffer/status.svg)](https://deps.rs/repo/github/icewind1991/bitbuffer)
{{badges}}
# {{crate}}

View file

@ -2,7 +2,7 @@
extern crate test;
use bitstream_reader::{BigEndian, BitBuffer, BitRead, BitStream, Endianness, LittleEndian};
use bitbuffer::{BigEndian, BitBuffer, BitRead, BitStream, Endianness, LittleEndian};
use test::Bencher;
fn read_perf<E: Endianness>(buffer: &BitBuffer<E>) -> u16 {

View file

@ -1,14 +1,14 @@
[package]
name = "bitstream_reader_derive"
name = "bitbuffer_derive"
version = "0.7.1"
authors = ["Robin Appelman <robin@icewind.nl>"]
edition = "2018"
description = "Reading bit sequences from a byte slice"
license = "MIT OR Apache-2.0"
repository = "https://github.com/icewind1991/bitstream_reader"
repository = "https://github.com/icewind1991/bitbuffer"
[lib]
name = "bitstream_reader_derive"
name = "bitbuffer_derive"
proc-macro = true
[dependencies]
@ -18,4 +18,4 @@ proc-macro2 = "1.0"
syn_util = "0.4"
[dev-dependencies]
bitstream_reader = { version = "0.7", path = ".." }
bitbuffer = { version = "0.7", path = ".." }

View file

@ -17,7 +17,7 @@
//! ## Examples
//!
//! ```
//! use bitstream_reader_derive::BitRead;
//! use bitbuffer::BitRead;
//!
//! #[derive(BitRead)]
//! struct TestStruct {
@ -37,7 +37,7 @@
//! ```
//!
//! ```
//! use bitstream_reader_derive::BitReadSized;
//! use bitbuffer::BitReadSized;
//!
//! #[derive(BitReadSized, PartialEq, Debug)]
//! struct TestStructSized {
@ -63,7 +63,7 @@
//! ## Examples
//!
//! ```
//! # use bitstream_reader_derive::BitRead;
//! # use bitbuffer::BitRead;
//! #
//! #[derive(BitRead)]
//! #[discriminant_bits = 2]
@ -75,7 +75,7 @@
//! ```
//!
//! ```
//! # use bitstream_reader_derive::BitRead;
//! # use bitbuffer::BitRead;
//! #
//! #[derive(BitRead)]
//! #[discriminant_bits = 2]
@ -89,7 +89,7 @@
//! ```
//!
//! ```
//! # use bitstream_reader_derive::BitReadSized;
//! # use bitbuffer::BitReadSized;
//! #
//! #[derive(BitReadSized, PartialEq, Debug)]
//! #[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
//!
//! ```
//! # use bitstream_reader_derive::BitRead;
//! # use bitstream_reader::{Endianness, BitStream};
//! # use bitbuffer::{BitRead, Endianness, BitStream};
//! #
//! #[derive(BitRead)]
//! #[endianness = "E"]
@ -122,8 +121,7 @@
//!
//! This is also required if you specify which endianness the struct has
//! ```
//! # use bitstream_reader_derive::BitRead;
//! # use bitstream_reader::{BigEndian, BitStream};
//! # use bitbuffer::{BitRead, BigEndian, BitStream};
//! #
//! #[derive(BitRead)]
//! #[endianness = "BigEndian"]
@ -180,7 +178,7 @@ fn derive_bitread_trait(
if endianness.is_none() {
trait_generics
.params
.push(parse_quote!(_E: ::bitstream_reader::Endianness));
.push(parse_quote!(_E: ::bitbuffer::Endianness));
}
let (impl_generics, _, _) = trait_generics.split_for_impl();
let span = input.span();
@ -195,10 +193,7 @@ fn derive_bitread_trait(
let parsed_unchecked = parse(input.data.clone(), &name, &input.attrs, true);
let endianness_placeholder = endianness.unwrap_or_else(|| "_E".to_owned());
let trait_def_str = format!(
"::bitstream_reader::{}<{}>",
trait_name, &endianness_placeholder
);
let trait_def_str = format!("::bitbuffer::{}<{}>", trait_name, &endianness_placeholder);
let trait_def = parse_str::<Path>(&trait_def_str).unwrap();
let endianness_ident = Ident::new(&endianness_placeholder, span);
@ -226,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 ::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
match <Self as #trait_def>::#size_method_name(#extra_param_call) {
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
}
@ -392,7 +387,7 @@ fn parse(data: Data, struct_name: &Ident, attrs: &[Attribute], unchecked: bool)
Ok(match discriminant {
#(#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 {
Some(size) => {
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 => {
quote_spanned! { span =>
<#field_type as ::bitstream_reader::BitRead<::bitstream_reader::LittleEndian>>::bit_size()
<#field_type as ::bitbuffer::BitRead<::bitbuffer::LittleEndian>>::bit_size()
}
}
}

View file

@ -1,10 +1,10 @@
#![allow(dead_code)]
#![allow(unreachable_patterns)]
use bitstream_reader::{
use bitbuffer::{
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)]
struct TestStruct {

View file

@ -21,7 +21,7 @@ const USIZE_SIZE: usize = size_of::<usize>();
/// # Examples
///
/// ```
/// use bitstream_reader::{BitBuffer, LittleEndian, Result};
/// use bitbuffer::{BitBuffer, LittleEndian, Result};
///
/// # fn main() -> Result<()> {
/// let bytes = vec![
@ -53,7 +53,7 @@ where
/// # Examples
///
/// ```
/// use bitstream_reader::{BitBuffer, LittleEndian};
/// use bitbuffer::{BitBuffer, LittleEndian};
///
/// let bytes = vec![
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
@ -137,7 +137,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -191,7 +191,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -327,7 +327,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -407,7 +407,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -499,7 +499,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![

View file

@ -15,8 +15,8 @@
//! # Examples
//!
//! ```
//! # use bitstream_reader::Result;
//! use bitstream_reader::{BitBuffer, LittleEndian, BitStream, BitRead};
//! # use bitbuffer::Result;
//! use bitbuffer::{BitBuffer, LittleEndian, BitStream, BitRead};
//!
//! #[derive(BitRead)]
//! struct ComplexType {
@ -59,7 +59,7 @@ use std::fmt;
use std::fmt::Display;
pub use std::string::FromUtf8Error;
pub use bitstream_reader_derive::{BitRead, BitReadSized};
pub use bitbuffer_derive::{BitRead, BitReadSized};
pub use buffer::BitBuffer;
pub use endianness::*;
pub use read::{BitRead, BitReadSized, LazyBitRead, LazyBitReadSized};

View file

@ -28,7 +28,7 @@ use std::sync::Arc;
/// ## Examples
///
/// ```
/// # use bitstream_reader_derive::BitRead;
/// # use bitbuffer::BitRead;
/// #
/// #[derive(BitRead)]
/// struct TestStruct {
@ -61,7 +61,7 @@ use std::sync::Arc;
/// ## Examples
///
/// ```
/// # use bitstream_reader_derive::BitRead;
/// # use bitbuffer::BitRead;
/// #
/// #[derive(BitRead)]
/// #[discriminant_bits = 2]
@ -73,7 +73,7 @@ use std::sync::Arc;
/// ```
///
/// ```
/// # use bitstream_reader_derive::BitRead;
/// # use bitbuffer::BitRead;
/// #
/// #[derive(BitRead)]
/// #[discriminant_bits = 2]
@ -356,7 +356,7 @@ impl_read_tuple!(T1, T2, T3, T4);
/// ## Examples
///
/// ```
/// # use bitstream_reader_derive::BitReadSized;
/// # use bitbuffer::BitReadSized;
/// #
/// #[derive(BitReadSized, PartialEq, Debug)]
/// struct TestStructSized {
@ -382,7 +382,7 @@ impl_read_tuple!(T1, T2, T3, T4);
/// ## Examples
///
/// ```
/// # use bitstream_reader_derive::BitReadSized;
/// # use bitbuffer::BitReadSized;
/// #
/// #[derive(BitReadSized)]
/// #[discriminant_bits = 2]

View file

@ -15,7 +15,7 @@ use std::cmp::min;
/// # Examples
///
/// ```
/// use bitstream_reader::{BitBuffer, BitStream, LittleEndian};
/// use bitbuffer::{BitBuffer, BitStream, LittleEndian};
///
/// let bytes = vec![
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
@ -45,7 +45,7 @@ where
/// # Examples
///
/// ```
/// use bitstream_reader::{BitBuffer, BitStream, LittleEndian};
/// use bitbuffer::{BitBuffer, BitStream, LittleEndian};
///
/// let bytes = vec![
/// 0b1011_0101, 0b0110_1010, 0b1010_1100, 0b1001_1001,
@ -73,7 +73,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -118,7 +118,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -169,7 +169,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -220,7 +220,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -268,7 +268,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -345,7 +345,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -386,7 +386,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -425,7 +425,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -459,7 +459,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -482,7 +482,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -507,7 +507,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -532,7 +532,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -551,8 +551,8 @@ where
/// ```
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// use bitstream_reader::BitRead;
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// use bitbuffer::BitRead;
/// #
/// #[derive(BitRead, Debug, PartialEq)]
/// struct ComplexType {
@ -597,7 +597,7 @@ where
/// # Examples
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![
@ -614,7 +614,7 @@ where
/// ```
///
/// ```
/// # use bitstream_reader::{BitBuffer, BitStream, LittleEndian, Result};
/// # use bitbuffer::{BitBuffer, BitStream, LittleEndian, Result};
/// #
/// # fn main() -> Result<()> {
/// # let bytes = vec![

View file

@ -3,7 +3,7 @@ use std::num::NonZeroU16;
use maplit::hashmap;
use bitstream_reader::{BigEndian, BitBuffer, BitRead, BitStream, LittleEndian};
use bitbuffer::{BigEndian, BitBuffer, BitRead, BitStream, LittleEndian};
const BYTES: &'static [u8] = &[
0b1011_0101,