mirror of
https://codeberg.org/icewind/bitbuffer.git
synced 2026-06-03 16:44:06 +02:00
some tuple implementations for bitread
This commit is contained in:
parent
d074779203
commit
8f5fdb41d2
1 changed files with 49 additions and 0 deletions
49
src/read.rs
49
src/read.rs
|
|
@ -266,6 +266,55 @@ impl<T: BitSize> BitSize for Box<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<E: Endianness, T1: BitRead<E>, T2: BitRead<E>> BitRead<E> for (T1, T2) {
|
||||||
|
#[inline]
|
||||||
|
fn read(stream: &mut BitStream<E>) -> Result<Self> {
|
||||||
|
Ok((T1::read(stream)?, T2::read(stream)?))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<E: Endianness, T1: BitRead<E>, T2: BitRead<E>, T3: BitRead<E>> BitRead<E> for (T1, T2, T3) {
|
||||||
|
#[inline]
|
||||||
|
fn read(stream: &mut BitStream<E>) -> Result<Self> {
|
||||||
|
Ok((T1::read(stream)?, T2::read(stream)?, T3::read(stream)?))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<E: Endianness, T1: BitRead<E>, T2: BitRead<E>, T3: BitRead<E>, T4: BitRead<E>> BitRead<E>
|
||||||
|
for (T1, T2, T3, T4)
|
||||||
|
{
|
||||||
|
#[inline]
|
||||||
|
fn read(stream: &mut BitStream<E>) -> Result<Self> {
|
||||||
|
Ok((
|
||||||
|
T1::read(stream)?,
|
||||||
|
T2::read(stream)?,
|
||||||
|
T3::read(stream)?,
|
||||||
|
T4::read(stream)?,
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T1: BitSize, T2: BitSize> BitSize for (T1, T2) {
|
||||||
|
#[inline]
|
||||||
|
fn bit_size() -> usize {
|
||||||
|
T1::bit_size() + T2::bit_size()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T1: BitSize, T2: BitSize, T3: BitSize> BitSize for (T1, T2, T3) {
|
||||||
|
#[inline]
|
||||||
|
fn bit_size() -> usize {
|
||||||
|
T1::bit_size() + T2::bit_size() + T3::bit_size()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T1: BitSize, T2: BitSize, T3: BitSize, T4: BitSize> BitSize for (T1, T2, T3, T4) {
|
||||||
|
#[inline]
|
||||||
|
fn bit_size() -> usize {
|
||||||
|
T1::bit_size() + T2::bit_size() + T3::bit_size() + T4::bit_size()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Trait for types that can be read from a stream, requiring the size to be configured
|
/// Trait for types that can be read from a stream, requiring the size to be configured
|
||||||
///
|
///
|
||||||
/// The meaning of the set sized depends on the type being read (e.g, number of bits for integers,
|
/// The meaning of the set sized depends on the type being read (e.g, number of bits for integers,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue