第98章へようこそ。
今日のテーマは「マーカートレイト」です。
第94章でSizedを学びました。第97章でSendとSyncを学びました。これらには共通点がある。メソッドが一つもない。
Iteratorにはnextがある。Displayにはfmtがある。Dropにはdropがある。
しかしSized、Send、Syncにはメソッドがない。
メソッドがないのに、何のために存在するのか。
型の性質をコンパイラに伝えるためです。「この型はこういう性質を持つ」と宣言する。コンパイラはこの宣言を使って、安全でないコードを拒否する。
こうしたトレイトを、マーカートレイトと呼びます。
今日は、Sized、Send、Syncに続くマーカートレイトとして、CopyとUnpinを掘り下げ、マーカートレイト全体の仕組みを俯瞰します。