fix: add unpin type

This commit is contained in:
DecDuck
2025-12-01 14:33:32 +11:00
parent 217079cdf7
commit acdf2ba0f7
3 changed files with 4 additions and 28 deletions
+1 -1
View File
@@ -175,7 +175,7 @@ dependencies = [
[[package]]
name = "droplet-rs"
version = "0.9.0"
version = "0.9.1"
dependencies = [
"anyhow",
"async-trait",
+1 -1
View File
@@ -2,7 +2,7 @@
edition = "2021"
authors = ["Drop-OSS"]
name = "droplet-rs"
version = "0.9.0"
version = "0.9.1"
license = "AGPL-3.0-only"
description = "Droplet is a `napi.rs` Rust/Node.js package full of high-performance and low-level utils for Drop"
+2 -26
View File
@@ -11,33 +11,9 @@ pub struct VersionFile {
pub size: u64,
}
pub trait MinimumFileObject: AsyncRead + Send {}
impl<T: AsyncRead + Send> MinimumFileObject for T {}
pub trait MinimumFileObject: AsyncRead + Send + Unpin {}
impl<T: AsyncRead + Send + Unpin> MinimumFileObject for T {}
// Intentionally not a generic, because of types in read_file
pub struct ReadToAsyncRead<'a> {
pub inner: Box<dyn Read + Send + 'a>,
}
const ASYNC_READ_BUFFER_SIZE: usize = 8128;
impl<'a> AsyncRead for ReadToAsyncRead<'a> {
fn poll_read(
mut self: std::pin::Pin<&mut Self>,
_cx: &mut std::task::Context<'_>,
buf: &mut tokio::io::ReadBuf<'_>,
) -> std::task::Poll<io::Result<()>> {
let mut read_buf = [0u8; ASYNC_READ_BUFFER_SIZE];
let read_size = ASYNC_READ_BUFFER_SIZE.min(buf.remaining());
match self.inner.read(&mut read_buf[0..read_size]) {
Ok(read) => {
buf.put_slice(&read_buf[0..read]);
std::task::Poll::Ready(Ok(()))
}
Err(err) => std::task::Poll::Ready(Err(err)),
}
}
}
#[async_trait]
pub trait VersionBackend: DynClone {