Типы, представляющие поля структуры, получили полный набор общих трейтов

27.04.2026

Типы, которыми представляют отдельные поля структуры, теперь реализуют набор стандартных трейтов: сравнение, хеширование, значение по умолчанию, копирование, форматирование для отладки и признаки потокобезопасности.

Зачем нужен отдельный тип для поля

Создавать обёртку над целым числом, чтобы запретить присваивать ему что-то кроме нужного диапазона, — приём из системного программирования. Поле получает свой тип, и ошибка обнаруживается при сборке, а не при работе.

Цена — громоздкость: такой тип нельзя сравнить, нельзя хешировать, нельзя вывести и нельзя передать в другой поток, пока для него не написано соответствующее.

Что изменилось

Большинство операций, которые всё равно сводятся к операции над обёрнутым значением, теперь доступны без ручного перебора. Это сокращает обвязку в каждом таком типе — а их в системном коде десятки.

Автоматически выводимые признаки безопасности тоже стали доступны, что убирает ещё один повод писать пустые реализации вручную.

Оригинал

implement more traits for field-representing types

Упоминаний: 1 · Просмотров: 1