面试题答案
一键面试use std::fmt::ToString;
use std::hash::{Hash, Hasher};
fn conditional_transform<T>(value: &mut T, cond1: bool, cond2: bool) -> T
where
T: ToString + Hash + Clone,
{
if cond1 {
let s = value.to_string();
return s.into();
} else if cond2 {
let mut hasher = std::collections::hash_map::DefaultHasher::new();
value.hash(&mut hasher);
let hash_value = hasher.finish();
return hash_value.into();
}
value.clone()
}