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

impl From

This commit is contained in:
Robin Appelman 2019-02-27 18:22:50 +01:00
commit f5e5fe54d1
3 changed files with 31 additions and 0 deletions

View file

@ -379,3 +379,15 @@ where
}
}
}
impl<E: Endianness> From<Vec<u8>> for BitBuffer<E> {
fn from(bytes: Vec<u8>) -> Self {
let byte_len = bytes.len();
BitBuffer {
bytes,
byte_len,
bit_len: byte_len * 8,
endianness: PhantomData,
}
}
}

View file

@ -517,3 +517,15 @@ where
T::read(self, size)
}
}
impl<E: Endianness> From<BitBuffer<E>> for BitStream<E> {
fn from(buffer: BitBuffer<E>) -> Self {
BitStream::new(buffer)
}
}
impl<E: Endianness> From<Vec<u8>> for BitStream<E> {
fn from(bytes: Vec<u8>) -> Self {
BitStream::new(BitBuffer::from(bytes))
}
}

View file

@ -224,6 +224,13 @@ fn read_f64_le() {
assert_eq!(buffer.read_float::<f64>(6).unwrap(), 135447455835963910000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0);
}
#[test]
fn test_from() {
let buffer: BitBuffer<LittleEndian> = BitBuffer::from(BYTES.to_vec());
let _: BitStream<LittleEndian> = BitStream::from(buffer);
let _: BitStream<LittleEndian> = BitStream::from(BYTES.to_vec());
}
#[test]
fn read_trait() {
let buffer = BitBuffer::new(BYTES.to_vec(), BigEndian);