diff options
Diffstat (limited to 'tvix')
-rw-r--r-- | tvix/nix-compat/src/derivation/mod.rs | 2 | ||||
-rw-r--r-- | tvix/nix-compat/src/derivation/write.rs | 16 |
2 files changed, 10 insertions, 8 deletions
diff --git a/tvix/nix-compat/src/derivation/mod.rs b/tvix/nix-compat/src/derivation/mod.rs index 6a1eee4a81c3..6ee42bb3ed96 100644 --- a/tvix/nix-compat/src/derivation/mod.rs +++ b/tvix/nix-compat/src/derivation/mod.rs @@ -47,7 +47,7 @@ impl Derivation { /// /// The only errors returns are these when writing to the passed writer. pub fn serialize(&self, writer: &mut impl std::io::Write) -> Result<(), io::Error> { - io::copy(&mut io::Cursor::new(write::DERIVATION_PREFIX), writer)?; + writer.write_all(write::DERIVATION_PREFIX.as_bytes())?; write::write_char(writer, write::PAREN_OPEN)?; write::write_outputs(writer, &self.outputs)?; diff --git a/tvix/nix-compat/src/derivation/write.rs b/tvix/nix-compat/src/derivation/write.rs index 223ba9ff3fd9..5937f619b719 100644 --- a/tvix/nix-compat/src/derivation/write.rs +++ b/tvix/nix-compat/src/derivation/write.rs @@ -6,9 +6,12 @@ use crate::derivation::escape::escape_bstr; use crate::derivation::output::Output; use bstr::BString; -use std::collections::BTreeSet; -use std::io::Cursor; -use std::{collections::BTreeMap, io, io::Error, io::Write}; +use std::{ + collections::{BTreeMap, BTreeSet}, + io, + io::Error, + io::Write, +}; pub const DERIVATION_PREFIX: &str = "Derive"; pub const PAREN_OPEN: char = '('; @@ -22,8 +25,7 @@ pub const QUOTE: char = '"'; pub(crate) fn write_char(writer: &mut impl Write, c: char) -> io::Result<()> { let mut buf = [0; 4]; let b = c.encode_utf8(&mut buf).as_bytes(); - io::copy(&mut Cursor::new(b), writer)?; - Ok(()) + writer.write_all(b) } // Write a string `s` as a quoted field to the writer. @@ -38,9 +40,9 @@ pub(crate) fn write_field<S: AsRef<[u8]>>( write_char(writer, QUOTE)?; if !escape { - io::copy(&mut Cursor::new(s), writer)?; + writer.write_all(s.as_ref())?; } else { - io::copy(&mut Cursor::new(escape_bstr(s.as_ref())), writer)?; + writer.write_all(&escape_bstr(s.as_ref()))?; } write_char(writer, QUOTE)?; |