use sha2::{Digest, Sha256}; pub fn compute_fingerprint(parts: &[&str]) -> String { let mut hasher = Sha256::new(); for part in parts { hasher.update(part.as_bytes()); hasher.update(b"|"); } hex::encode(hasher.finalize()) }