diff --git a/src/main.rs b/src/main.rs index f50c639..459a3de 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,7 @@ use curl::easy::Easy; use sha2::{Sha256, Digest}; use std::fs::File; -fn main() { +fn download_image() -> Vec { // Buffer pour recevoir l'image let mut buf = Vec::new(); @@ -14,17 +14,22 @@ fn main() { // URL à manipuler handle.url("https://thispersondoesnotexist.com/").unwrap(); { - // Callback pour traiter les données reçues let mut transfer = handle.transfer(); + // Callback pour traiter les données reçues transfer.write_function(|new_data| { - buf.extend_from_slice(new_data); + buf.extend_from_slice(&new_data); Ok(new_data.len()) }).unwrap(); - // Effectue l'appel transfer.perform().unwrap(); } + buf +} + +fn main() { + let buf = download_image(); + // Sauve le buffer dans un fichier dont le nom est le hash du buffer let hasher = Sha256::new_with_prefix(buf.as_slice()); let hash_bytes = hasher.finalize();