mirror of
https://codeberg.org/icewind/bitbuffer.git
synced 2026-06-03 16:44:06 +02:00
write for Cow
This commit is contained in:
parent
bf27c72389
commit
5008cae35d
1 changed files with 15 additions and 0 deletions
15
src/write.rs
15
src/write.rs
|
|
@ -1,4 +1,5 @@
|
|||
use crate::{BitReadStream, BitWriteStream, Endianness, Result};
|
||||
use std::borrow::Cow;
|
||||
use std::mem::size_of;
|
||||
use std::rc::Rc;
|
||||
use std::sync::Arc;
|
||||
|
|
@ -200,6 +201,13 @@ impl<T: BitWrite<E>, E: Endianness> BitWrite<E> for Option<T> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a, T: BitWrite<E> + ToOwned, E: Endianness> BitWrite<E> for Cow<'a, T> {
|
||||
#[inline]
|
||||
fn write(&self, stream: &mut BitWriteStream<E>) -> Result<()> {
|
||||
self.as_ref().write(stream)
|
||||
}
|
||||
}
|
||||
|
||||
macro_rules! impl_write_tuple {
|
||||
($($i:tt: $type:ident),*) => {
|
||||
impl<'a, E: Endianness, $($type: BitWrite<E>),*> BitWrite<E> for ($($type),*) {
|
||||
|
|
@ -370,3 +378,10 @@ impl<T: BitWriteSized<E>, E: Endianness> BitWriteSized<E> for Option<T> {
|
|||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, T: BitWriteSized<E> + ToOwned, E: Endianness> BitWriteSized<E> for Cow<'a, T> {
|
||||
#[inline]
|
||||
fn write_sized(&self, stream: &mut BitWriteStream<E>, len: usize) -> Result<()> {
|
||||
self.as_ref().write_sized(stream, len)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue