Rust 1.94.0: array_windows для срезов и include в конфигурации Cargo

05.03.2026

Вышел Rust 1.94.0. Две главные вещи: у срезов появился итератор array_windows с элементами фиксированной длины, а конфигурация Cargo научилась включать другие файлы.

array_windows

Метод работает как windows, но элементом итератора становится &[T; N] — срез известной длины, а не динамический. Это устраняет ручную индексацию в задачах вида «найти все подпоследовательности длины N».

Отдельная приятность: длину окна часто удаётся вывести из способа использования. Если дальше идёт разбор кортежа, компилятор сам поймёт, что нужно окно в три элемента, — указывать константу вручную не приходится.

include в конфигурации Cargo

В файле .cargo/config.toml теперь можно указать include — список файлов, содержимое которых подставляется на место директивы. Сами включения могут быть необязательными.

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

Разбор TOML 1.1

Появилась поддержка спецификации TOML 1.1: многострочные встроенные таблицы с висячими запятыми, escape-последовательности для шестнадцатеричного кода и escape, необязательные секунды во времени.

Практическая оговорка: новые возможности в манифесте поднимают требование к версии, но Cargo переписывает манифест при публикации. То есть можно держать старое требование для пользователей, при этом пользуясь новым синтаксисом у себя. Сторонним программам, разбирающим манифесты, изменения потребуют.

Что ещё стабилизировано

  • LazyCell и LazyLock — методы get, get_mut, force_mut;
  • Peekable::next_if_map и вариант с изменяемым доступом;
  • константы EULER_GAMMA и GOLDEN_RATIO для чисел с плавающей точкой, mul_add в константных контекстах;
  • интринсики для полуразрядной точности: расширения AVX512-FP16 на x86 и NEON FP16 на AArch64, кроме зависящих от нестабильного типа.

Оригинал

Announcing Rust 1.94.0 от 5 марта 2026 года

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