第99章へようこそ。
今日のテーマは「オーファンルール」です。
第96章では、ブランケット実装を学びました。
条件を満たすすべての型に、トレイトを一括実装する仕組みでした。
今日は、トレイト実装に課せられた制限を学びます。
Rustでは、他のクレートが定義したトレイトを、他のクレートが定義した型に実装することはできません。
たとえば、標準ライブラリのDisplayトレイトを、外部クレートのSomeTypeに対して、自分のクレートで実装することはできない。
これがオーファンルールです。
オーファンは「孤児」を意味します。
トレイトも型も自分のものでない実装は、親のいない孤児のようなもの。
どのクレートが責任を持つのか分からない。だから禁止される。