Поделиться
В официальном блоге языка Rust появилась запись о релизе свежей версии под номером 1.53.0. По словам самих разработчиков, в ней они решили сконцентрироваться на добавлении нескольких новых языковых функций и множества новых функций библиотеки.
IntoIterator для массивов
«Звездой» апдейта стала возможность перебора массивов по значению через цикл for:
for i in [1, 2, 3] {
..
}
Ранее это работало лишь через конструкции вида &[1, 2, 3] или [1, 2, 3].iter().
Вместе с тем теперь Rust-разработчики могут передавать массивы методам, ожидающим T: IntoIterator:
let set = BTreeSet::from_iter([1, 2, 3]);
for (a, b) in some_iterator.chain([1]).zip([1, 2, 3]) {
..
}
Unicode-идентификаторы
Теперь идентификаторы могут содержать символы, отличные от ascii. Например, можно использовать Unicode-символы, определённые в UAX # 31. Правда, есть и ограничение — эмодзи всё ещё запрещены.
Стабилизировали ряд API
В числе доработанных методов и трейтов оказались:
-
array::from_ref
array::from_mut
AtomicBool::fetch_update
AtomicPtr::fetch_update
BTreeSet::retain
BTreeMap::retain
BufReader::seek_relative
cmp::min_by
cmp::min_by_key
cmp::max_by
cmp::max_by_key
DebugStruct::finish_non_exhaustive
Duration::ZERO
Duration::MAX
Duration::is_zero
Duration::saturating_add
Duration::saturating_sub
Duration::saturating_mul
и множество других.
Источник: