From 98ffad24d37a3867c08e250288b90f4d5baa8c5c Mon Sep 17 00:00:00 2001 From: Fredrik Hammar Date: Tue, 16 Aug 2022 15:07:46 +0900 Subject: [PATCH 1/3] Add utility function tee for short invokation `tee::tee(r, w)` vs. `tee::TreeReader(r, w)` --- src/lib.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 239365f..3916e9b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,6 +7,15 @@ pub struct TeeReader { writer: W, } +/// Returns a TeeReader which can be used as Read whose +/// reads delegate bytes read to the provided reader and write to the provided +/// writer. The write operation must complete before the read completes. +/// +/// Errors reported by the write operation will be interpreted as errors for the read +pub fn tee(reader: R, writer: W) -> TeeReader { + TeeReader::new(reader, writer) +} + impl TeeReader { /// Returns a TeeReader which can be used as Read whose /// reads delegate bytes read to the provided reader and write to the provided @@ -36,7 +45,6 @@ impl Read for TeeReader { #[cfg(test)] mod tests { - use super::*; use std::io::Read; #[test] @@ -45,7 +53,7 @@ mod tests { let mut teeout = Vec::new(); let mut stdout = Vec::new(); { - let mut tee = TeeReader::new(&mut reader, &mut teeout); + let mut tee = super::tee(&mut reader, &mut teeout); let _ = tee.read_to_end(&mut stdout); } assert_eq!(teeout, stdout); From cd52a97e2fee8d487c50a109b6ebd2dd632c966f Mon Sep 17 00:00:00 2001 From: Fredrik Hammar Date: Tue, 16 Aug 2022 15:09:49 +0900 Subject: [PATCH 2/3] Use `?` over `try!` `try!` is deprecated and `try` keyword reserved for future use. --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3916e9b..1473fb4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -37,8 +37,8 @@ impl TeeReader { impl Read for TeeReader { fn read(&mut self, buf: &mut [u8]) -> Result { - let n = try!(self.reader.read(buf)); - try!(self.writer.write_all(&buf[..n])); + let n = self.reader.read(buf)?; + self.writer.write_all(&buf[..n])?; Ok(n) } } From 5028354679d64c44ef88237db900ce9229d6f9b5 Mon Sep 17 00:00:00 2001 From: Fredrik Hammar Date: Tue, 16 Aug 2022 15:16:12 +0900 Subject: [PATCH 3/3] Version 0.2.0 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index fd32808..1e8d611 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tee" -version = "0.1.0" +version = "0.2.0" authors = ["softprops "] description = "An adapter for readers which delegate reads to a writer" documentation = "http://softprops.github.io/tee"