From c300f405d77eb083cf6812a970f893fdb7c4bd26 Mon Sep 17 00:00:00 2001 From: wcampbell Date: Sat, 14 Oct 2023 14:28:34 -0400 Subject: [PATCH] Borrow writer --- src/impls/bool.rs | 4 ++-- src/writer.rs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) 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(),