diff --git a/src/impls/bool.rs b/src/impls/bool.rs index fdca95db..eac90ea5 100644 --- a/src/impls/bool.rs +++ b/src/impls/bool.rs @@ -76,8 +76,8 @@ mod tests { #[test] fn test_writer() { - let out_buf = vec![]; - let mut writer = Writer::new(out_buf); + let mut out_buf = vec![]; + let mut writer = Writer::new(&mut out_buf); true.to_writer(&mut writer, BitSize(1)).unwrap(); assert_eq!(vec![true], writer.rest()); diff --git a/src/writer.rs b/src/writer.rs index da73c8f7..8b58cbd4 100644 --- a/src/writer.rs +++ b/src/writer.rs @@ -14,17 +14,17 @@ const fn bits_of() -> usize { } /// Container to use with `from_reader` -pub struct Writer { - pub(crate) inner: W, +pub struct Writer<'a, W: Write> { + pub(crate) inner: &'a mut W, leftover: BitVec, /// Total bits written pub bits_written: usize, } -impl Writer { +impl<'a, W: Write> Writer<'a, W> { /// Create a new `Writer` #[inline] - pub fn new(inner: W) -> Self { + pub fn new(inner: &'a mut W) -> Self { Self { inner, leftover: BitVec::new(),