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