diff --git a/implementations/rust/preserves/src/value/packed/writer.rs b/implementations/rust/preserves/src/value/packed/writer.rs index 59995e0..ea418aa 100644 --- a/implementations/rust/preserves/src/value/packed/writer.rs +++ b/implementations/rust/preserves/src/value/packed/writer.rs @@ -18,11 +18,13 @@ struct Buffers { impl io::Write for Buffers { fn write(&mut self, buf: &[u8]) -> io::Result { - match self.stack.last_mut() { - Some(bss) => - bss.last_mut().expect("Internal error: PackedWriter buffer sequence underflow").write(buf), - None => - self.base.write(buf) + if self.stack.is_empty() { + self.base.write(buf) + } else { + self.stack + .last_mut().unwrap() + .last_mut().expect("Internal error: PackedWriter buffer sequence underflow") + .write(buf) } }