Вышла версия Rust 1.95 с новыми средствами защиты от совпадений и стабильными дополнениями к API
Выпущен Rust 1.95 с поддержкой выражений if let guards within match. Эта функция основана на функциональности цепочки let, представленной в Rust 1.88, позволяя выполнять дополнительные проверки условных шаблонов непосредственно в match arms.
Команда разработчиков Rust отмечает, что шаблоны, сопоставленные с if let в охранных конструкциях, в настоящее время не учитываются при оценке полноты сопоставления в компиляторе, как и обычные if в охранных конструкциях.
Еще одно обновление, о котором стоит упомянуть, — это появление макроса cfg_select! . Команда разработчиков Rust объясняет, что он работает как match во время компиляции и выполняет те же функции, что и широко используемый cfg-if crate, но с другим синтаксисом. Этот макрос позволяет разработчикам напрямую выбирать реализации или значения в зависимости от целевой платформы или конфигурации сборки.
Кроме того, в Rust 1.95 значительно расширен стабильный API. Среди новых стабильных элементов — улучшения в методах MaybeUninit Cell, атомарного обновления и try-update, модуль core::range Vec::push_mut, Vec::insert_mut VecDeque вспомогательные функции для вставки, LinkedList вспомогательные функции для push-мутации и несколько методов Layout.
Заметное изменение в Rust 1.95 касается пользовательских целей. Стабильная поддержка передачи пользовательской спецификации цели JSON в rustc была удалена. В проекте заявляют, что это не повлияет на пользователей с полностью стабильной цепочкой инструментов, поскольку для сборки стандартной библиотеки для пользовательских целей уже требуются функции, доступные только в ночных сборках.
Помимо основных обновлений компилятора и языка, в примечаниях к выпуску рассказывается о других изменениях в Rust, Cargo и Clippy. Rust 1.95 — это комплексное обновление, включающее в себя не только новые функции, но и исправления ошибок.
Подробный список изменений приведен в официальном объявлении.
Выводы
Релиз Rust 1.95 показывает, что язык продолжает развиваться не только в сторону производительности, но и в сторону удобства повседневной разработки. Одним из самых заметных изменений стала поддержка новых match guards, которые делают работу с сопоставлением шаблонов более гибкой и читаемой, особенно в сложной бизнес-логике и системных приложениях.
Не менее важным стало расширение списка стабильных API, что позволяет разработчикам использовать новые возможности стандартной библиотеки без перехода на nightly-сборки. Это повышает надёжность проектов и снижает риск несовместимости при обновлениях среды разработки.
Для разработчиков на Rust версия 1.95 становится ещё одним подтверждением того, что экосистема языка постепенно взрослеет: код становится лаконичнее, инструменты — стабильнее, а сам язык — более удобным для создания безопасного и масштабируемого программного обеспечения.
Редактор: AndreyEx