Listen

Description

第99章へようこそ。

今日のテーマは「オーファンルール」です。

第96章では、ブランケット実装を学びました。

条件を満たすすべての型に、トレイトを一括実装する仕組みでした。

今日は、トレイト実装に課せられた制限を学びます。

Rustでは、他のクレートが定義したトレイトを、他のクレートが定義した型に実装することはできません。

たとえば、標準ライブラリのDisplayトレイトを、外部クレートのSomeTypeに対して、自分のクレートで実装することはできない。

これがオーファンルールです。

オーファンは「孤児」を意味します。

トレイトも型も自分のものでない実装は、親のいない孤児のようなもの。

どのクレートが責任を持つのか分からない。だから禁止される。