autopulse_utils/
checksum.rs1use sha2::{Digest, Sha256};
2use std::{
3 fs::File,
4 io::{BufReader, Read},
5 path::PathBuf,
6};
7
8pub fn sha256checksum(file_path: &PathBuf) -> anyhow::Result<String> {
9 let file = File::open(file_path)?;
10 let mut reader = BufReader::new(file);
11 let mut hasher = Sha256::new();
12 let mut buffer = [0u8; 8192];
13
14 loop {
15 let bytes_read = reader.read(&mut buffer)?;
16 if bytes_read == 0 {
17 break;
18 }
19 hasher.update(&buffer[..bytes_read]);
20 }
21
22 Ok(format!("{:x}", hasher.finalize()))
23}