Появились From-реализации для ссылок на NonZero
29.09.2026Добавлены реализации From<&NonZero<T>> для &T — для всех целочисленных типов, usize, isize и char. Теперь ссылку на NonZero можно получить из ссылки на само значение через ::into().
Смысл
Обратное направление — из &T в &NonZero<T> — выполнить нельзя: в общем случае значение может оказаться нулём, и тогда NonZero не существует. А вот обратное вполне безопасно, и теперь типы это отражают.
Сделать реализацию обобщённой не удалось: компилятор не выводит, что ZeroablePrimitive закрыт, а это нужно для когерентности. Поэтому набор реализаций расписан явно. Часть вариантов пока закомментирована в коде из-за бага типизации.
Принято по ACP libs-team#145 и потребовало Final Comment Period, поскольку добавляет практически стабильный API. Автор — clarfonthey.
Оригинал
Additional NonZero conversions
Упоминаний: 1 · Просмотров: 4