AsRef — cheap reference conversion. Borrow — semantic borrowing.
AsRef:
Borrow:
1fn print_ref<T: AsRef<str>>(s: T) {2 println!("{}", s.as_ref());3}45fn get_value<T: Borrow<str>, K: Borrow<T>>(map: &HashMap<K, String>, key: K) -> &String {6 map.get(key.borrow()).unwrap()7}
Key: AsRef for general conversion, Borrow for HashMap keys.