From e37e3f620b605b0ee9a922dfd77f2401611faf5b Mon Sep 17 00:00:00 2001 From: DecDuck Date: Sat, 13 Dec 2025 21:28:20 +1100 Subject: [PATCH] feat: provide rusty manifest --- libraries/droplet/Cargo.lock | 2 +- libraries/droplet/Cargo.toml | 2 +- libraries/droplet/src/manifest.rs | 11 +++++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/libraries/droplet/Cargo.lock b/libraries/droplet/Cargo.lock index bddbc4ac..99753d69 100644 --- a/libraries/droplet/Cargo.lock +++ b/libraries/droplet/Cargo.lock @@ -219,7 +219,7 @@ dependencies = [ [[package]] name = "droplet-rs" -version = "0.11.0" +version = "0.11.1" dependencies = [ "anyhow", "async-trait", diff --git a/libraries/droplet/Cargo.toml b/libraries/droplet/Cargo.toml index c1d0956c..f2141354 100644 --- a/libraries/droplet/Cargo.toml +++ b/libraries/droplet/Cargo.toml @@ -2,7 +2,7 @@ edition = "2021" authors = ["Drop-OSS"] name = "droplet-rs" -version = "0.11.0" +version = "0.11.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" diff --git a/libraries/droplet/src/manifest.rs b/libraries/droplet/src/manifest.rs index 44ff235d..47e515c4 100644 --- a/libraries/droplet/src/manifest.rs +++ b/libraries/droplet/src/manifest.rs @@ -18,7 +18,7 @@ use sha2::{Digest as _, Sha256}; use tokio::{io::AsyncReadExt as _, join, sync::Mutex}; #[derive(Serialize, Clone)] -struct FileEntry { +pub struct FileEntry { filename: String, start: usize, length: usize, @@ -26,13 +26,13 @@ struct FileEntry { } #[derive(Serialize, Clone)] -struct ChunkData { +pub struct ChunkData { files: Vec, checksum: String, } #[derive(Serialize)] -struct Manifest { +pub struct Manifest { version: String, chunks: HashMap, size: u64, @@ -47,7 +47,7 @@ pub async fn generate_manifest_rusty( dir: &Path, progress_sfn: V, log_sfn: T, -) -> anyhow::Result { +) -> anyhow::Result { let mut backend = create_backend_constructor(dir).ok_or(anyhow!("Could not create backend for path."))?()?; @@ -222,10 +222,9 @@ pub async fn generate_manifest_rusty( let manifest = manifest.lock().await; let manifest = manifest.clone(); - Ok(json!(Manifest { + Ok(Manifest { version: "2".to_string(), chunks: manifest, size: total_manifest_length.fetch_add(0, Ordering::Relaxed) }) - .to_string()) }