実装すべき一般的なトレイト

// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0

#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone /* ... */)]
pub struct MyData {
    pub name: String,
    pub number: usize,
    pub data: [u8; 64],
}
  • トレイトは、Rust 言語における最も強力なツールの 1 つです。言語とエコシステムはそれらを使うことを前提としているため、予測可能性 の大きな部分は、ある型にどのトレイトが実装されているかにあります。

  • 自分で作成した型にはトレイトを積極的に実装すべきですが、注意点もあります!

  • 多くのトレイトは derive できる、つまりコンパイラプラグイン(マクロ)に実装を書かせることができる、という点を覚えておきましょう!

  • エコシステムのトレイト(De/Serialize など)の作者は、ユーザーが利用できる derive 実装を提供しているため、この種のトレイトを実装する際に開発者側で必要な負担はごくわずかです!