Типы, представляющие поля структуры, получили полный набор общих трейтов
27.04.2026Типы, которыми представляют отдельные поля структуры, теперь реализуют набор стандартных трейтов: сравнение, хеширование, значение по умолчанию, копирование, форматирование для отладки и признаки потокобезопасности.
Зачем нужен отдельный тип для поля
Создавать обёртку над целым числом, чтобы запретить присваивать ему что-то кроме нужного диапазона, — приём из системного программирования. Поле получает свой тип, и ошибка обнаруживается при сборке, а не при работе.
Цена — громоздкость: такой тип нельзя сравнить, нельзя хешировать, нельзя вывести и нельзя передать в другой поток, пока для него не написано соответствующее.
Что изменилось
Большинство операций, которые всё равно сводятся к операции над обёрнутым значением, теперь доступны без ручного перебора. Это сокращает обвязку в каждом таком типе — а их в системном коде десятки.
Автоматически выводимые признаки безопасности тоже стали доступны, что убирает ещё один повод писать пустые реализации вручную.
Оригинал
implement more traits for field-representing types
Упоминаний: 1 · Просмотров: 1