Deref 型強制を使った省力化について。
型強制では頻出の型変換を自動で行ってくれる。そして、自動化された変換の一つに、Deref トレイトの参照を自動で辿る機能がある。
より具体的には、型 T が Deref<Target = U> の境界を持つ時に、&T から &U へと自動的に変換してくれる。
上記の仕様により、通常の参照型で複数種のスマートポインタに対応できる。
use std::rc::Rc;
fn main() {
test(&42);
test(&Box::new(42));
test(&Rc::new(42));
}
fn test(r: &i32) {
println!("{}", r);
}