Update la web app pour tirer partie du nouveau systeme de cache

This commit is contained in:
2025-10-28 00:10:51 +01:00
parent 8245fa6f41
commit 785f8d52a5
14 changed files with 459 additions and 43 deletions

View File

@@ -11,9 +11,7 @@ fn main() {
println!(" dl.wait_until_finished().await?;\n");
println!("2. Téléchargement avec transformation:");
println!(
" let transformer: StreamTransformer = Box::new(|response, mut file, update_progress| {{"
);
println!(" let transformer: StreamTransformer = Box::new(|response, mut file, ctx| {{");
println!(" Box::pin(async move {{");
println!(" let mut stream = response.bytes_stream();");
println!(" let mut total = 0u64;");
@@ -26,7 +24,7 @@ fn main() {
println!();
println!(" file.write_all(&transformed).await.map_err(|e| e.to_string())?;");
println!(" total += transformed.len() as u64;");
println!(" update_progress(total);");
println!(" ctx.report_progress(total);");
println!(" }}");
println!();
println!(" file.flush().await.map_err(|e| e.to_string())?;");

View File

@@ -19,7 +19,7 @@ fn create_gzip_transformer() -> StreamTransformer {
unimplemented!("Cette fonction nécessite la dépendance async-compression")
/*
Box::new(|response, mut file, update_progress| {
Box::new(|response, mut file, context| {
Box::pin(async move {
use async_compression::tokio::write::GzipEncoder;
@@ -36,7 +36,7 @@ fn create_gzip_transformer() -> StreamTransformer {
.map_err(|e| format!("Failed to write compressed data: {}", e))?;
total_written += chunk.len() as u64;
update_progress(total_written);
context.report_progress(total_written);
}
encoder
@@ -52,7 +52,7 @@ fn create_gzip_transformer() -> StreamTransformer {
/// Exemple de transformer qui convertit les données en majuscules (exemple simple)
fn create_uppercase_transformer() -> StreamTransformer {
Box::new(|input, mut file, update_progress| {
Box::new(|input, mut file, context| {
Box::pin(async move {
let mut stream = input.into_byte_stream();
let mut total_written = 0u64;
@@ -77,7 +77,7 @@ fn create_uppercase_transformer() -> StreamTransformer {
.map_err(|e| format!("Failed to write: {}", e))?;
total_written += transformed.len() as u64;
update_progress(total_written);
context.report_progress(total_written);
}
file.flush()
@@ -91,7 +91,7 @@ fn create_uppercase_transformer() -> StreamTransformer {
/// Exemple de transformer qui saute les N premiers bytes (utile pour enlever des headers)
fn create_skip_header_transformer(skip_bytes: usize) -> StreamTransformer {
Box::new(move |input, mut file, update_progress| {
Box::new(move |input, mut file, context| {
Box::pin(async move {
let mut stream = input.into_byte_stream();
let mut skipped = 0usize;
@@ -118,7 +118,7 @@ fn create_skip_header_transformer(skip_bytes: usize) -> StreamTransformer {
.map_err(|e| format!("Failed to write: {}", e))?;
total_written += to_write.len() as u64;
update_progress(total_written);
context.report_progress(total_written);
}
file.flush()
@@ -132,7 +132,7 @@ fn create_skip_header_transformer(skip_bytes: usize) -> StreamTransformer {
/// Exemple de transformer qui compte les lignes et ajoute des numéros
fn create_line_number_transformer() -> StreamTransformer {
Box::new(|input, mut file, update_progress| {
Box::new(|input, mut file, context| {
Box::pin(async move {
let mut stream = input.into_byte_stream();
let mut line_number = 1u32;
@@ -162,7 +162,7 @@ fn create_line_number_transformer() -> StreamTransformer {
.map_err(|e| format!("Failed to write: {}", e))?;
total_written += numbered_line.len() as u64 + line.len() as u64 + 1;
update_progress(total_written);
context.report_progress(total_written);
line_number += 1;
buffer.drain(..=newline_pos);
@@ -181,7 +181,7 @@ fn create_line_number_transformer() -> StreamTransformer {
.map_err(|e| format!("Failed to write: {}", e))?;
total_written += numbered_line.len() as u64 + buffer.len() as u64;
update_progress(total_written);
context.report_progress(total_written);
}
file.flush()