From 894f9b49f9ecd861d0e734b442c6be8d8042a773 Mon Sep 17 00:00:00 2001
From: Jiahao XU <Jiahao_XU@outlook.com>
Date: Wed, 8 Jun 2022 22:29:04 +1000
Subject: [PATCH] Simplify `AsyncFileWriter::new`: Ret `Self`

instead of `io::Result<Self>`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
---
 src/helpers.rs                   | 2 +-
 src/helpers/async_file_writer.rs | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/helpers.rs b/src/helpers.rs
index f60df2d8..8ee87f9a 100644
--- a/src/helpers.rs
+++ b/src/helpers.rs
@@ -65,7 +65,7 @@ pub async fn download<P: AsRef<Path>>(url: &str, path: P) -> Result<(), Binstall
     debug!("Downloading to file: '{}'", path.display());
 
     let mut bytes_stream = resp.bytes_stream();
-    let mut writer = AsyncFileWriter::new(path)?;
+    let mut writer = AsyncFileWriter::new(path);
 
     while let Some(res) = bytes_stream.next().await {
         writer.write(res?).await?;
diff --git a/src/helpers/async_file_writer.rs b/src/helpers/async_file_writer.rs
index 6405c777..12f69133 100644
--- a/src/helpers/async_file_writer.rs
+++ b/src/helpers/async_file_writer.rs
@@ -25,7 +25,7 @@ struct AsyncFileWriterInner {
 }
 
 impl AsyncFileWriterInner {
-    fn new(path: &Path) -> io::Result<Self> {
+    fn new(path: &Path) -> Self {
         let path = path.to_owned();
         let (tx, rx) = mpsc::channel::<Content>(100);
 
@@ -60,7 +60,7 @@ impl AsyncFileWriterInner {
             Ok(())
         }));
 
-        Ok(Self { handle, tx })
+        Self { handle, tx }
     }
 
     /// Upon error, this writer shall not be reused.
@@ -110,8 +110,9 @@ impl AsyncFileWriterInner {
 pub struct AsyncFileWriter(ScopeGuard<AsyncFileWriterInner, fn(AsyncFileWriterInner), Always>);
 
 impl AsyncFileWriter {
-    pub fn new(path: &Path) -> io::Result<Self> {
-        AsyncFileWriterInner::new(path).map(|inner| Self(guard(inner, AsyncFileWriterInner::abort)))
+    pub fn new(path: &Path) -> Self {
+        let inner = AsyncFileWriterInner::new(path);
+        Self(guard(inner, AsyncFileWriterInner::abort))
     }
 
     /// Upon error, this writer shall not be reused.