てがみ: qatacri at protonmail.com | 統計 | 2020

202034401

なんとなく

impl<X, Y: From<X>, Z: From<Y>> From<X> for Z {
    fn from(x: X) -> Z {
        Z::from(Y::from(x))
    }
}

こんな感じの impl に相当する何か (もちろんこのコードはコンパイルできない) があって、 From, Into は直接の変換がなくても機能すると思っていたが勘違いだった。 Deref もトレイト自体にコンパイラマジックがあるわけではなく、関数の引数の型に使うときは直接の変換がないと機能しない。