add async feature #1

Merged
b4tman merged 62 commits from async into master 2023-08-18 06:29:46 +00:00
Showing only changes of commit 4c555df8ca - Show all commits

View File

@ -1,7 +1,7 @@
use std::{path::Path, sync::Arc};
use async_compression::tokio::bufread::ZstdDecoder;
use async_compression::tokio::write::ZstdEncoder;
use async_compression::tokio::bufread::ZstdEncoder;
use async_compression::Level;
use futures::stream::StreamExt;
use futures_core::stream::Stream;
@ -78,9 +78,8 @@ where
let item_data = bincode::encode_to_vec(item, BINCODE_CFG).str_err()?;
let mut zencoder = ZstdEncoder::with_quality(&mut self.data_buf, self.compress_lvl);
zencoder.write_all(&item_data).await.str_err()?;
zencoder.flush().await.str_err()?;
let mut zencoder = ZstdEncoder::with_quality(&item_data[..], self.compress_lvl);
io::copy(&mut zencoder, &mut self.data_buf).await.str_err()?;
self.table.push(pos);
@ -116,7 +115,6 @@ where
let pos_data = (pos + tab_size).to_le_bytes();
self.out.write_all(&pos_data).await.str_err()?;
}
// copy data
self.out.write_all(&self.data_buf[..]).await.str_err()?;