Появились 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