Three traits which are essential for designing good, Rustic APIs.
Borrow, AsRef, and Deref are a little complicated, but they're well-worth understanding. Together, they give you tools for dealing with everything from HashMap and friends to conversions involving smart pointer types to easily using String and str or Vec and slice together.AsRef, Borrow, and Deref:Borrow and AsRef in The Rust Programming Languagecollections::borrow::Borrowstd::convert::AsRefstd::ops::Deref(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)