use vflight::{FileMetadata, Request, Response};
fn main() -> anyhow::Result<()> {
let metadata = FileMetadata {
name: "document.pdf".to_string(),
size: 1_024_000,
total_chunks: 35,
chunk_hashes: vec![
"hash1".to_string(),
"hash2".to_string(),
"hash3".to_string(),
],
route_blob: "base64_encoded_route_data".to_string(),
encryption_salt: None,
encryption_nonce: None,
compressed: false,
};
println!("Original metadata:");
println!(" Name: {}", metadata.name);
println!(" Size: {} bytes", metadata.size);
println!(" Chunks: {}", metadata.total_chunks);
let json = serde_json::to_string_pretty(&metadata)?;
println!("\nSerialized to JSON:\n{}\n", json);
let request = Request::GetMetadata;
let request_json = serde_json::to_string(&request)?;
println!("Request message: {}", request_json);
let response = Response::Metadata {
name: metadata.name.clone(),
size: metadata.size,
total_chunks: metadata.total_chunks,
chunk_hashes: metadata.chunk_hashes.clone(),
compressed: metadata.compressed,
};
let response_json = serde_json::to_string_pretty(&response)?;
println!("\nResponse message:\n{}", response_json);
Ok(())
}