Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Общие трейты для реализации

// 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. Язык и экосистема ожидают, что вы будете их использовать, поэтому значительная часть предсказуемости — это то, какие трейты реализованы для типа!

  • Трейты стоит щедро реализовывать для типов, которые вы определяете, но есть оговорки!

  • Помните, что многие трейты можно получить через derive: заставить компилятор-плагин (макрос) написать реализацию за вас!

  • Авторы трейтов экосистемы (например, De/Serialize) предоставили реализации derive для пользователей, поэтому для реализации таких трейтов от разработчика требуется очень мало усилий!