
Size: a a a










write_u32 и write_i8, однако в текущем виде эти методы используют реализацию по умолчанию. Реализация этих методов напрямую может ускорить хэширование — и это изменение предлагалось, но, к сожалению, его пришлось отбросить, поскольку оно негативно сказывалось на времени компиляции некоторых бенчмарков :(



min_const_generics, то есть версия с серьёзными ограничениями, о которых можно подробнее почитать отдельно. Одни из них вполне понятны — это ограничения на использование выражений с использованием таких параметров — что вполне логично, поскольку в общем случае их унификация является достаточно сложной задачей, а вот ограничения на типы самих константых обобщённых параметров куда более обидны: использовать пока что можно лишь примитивные числовые типы, char и bool. С другой стороны, одной из главных причин стабилизации const generics была необходимость в возможности писать код, полиморфный по массивам произвольной размерности (что ранее решалось лишь частично при помощи копипаста, разбавленного макросами), и эту задачу нынешний вариант const generics решает..into_iter() на векторе (и делать аллокацию там, где она не нужна), вызывать .iter().cloned()/.iter().copied() на литерале массива (что делает лишнее копирование, которое в некоторых случаях невозможно вовсе) или же .chain(...)-ить once-ы (что выглядит громоздко и, более того, достаточно медленно работает). Теперь же есть нормальные рабочий вариант. Почему же не добавили impl Intoiterator for [T; N], спросите вы? К сожалению, есть странные люди, которые вызывают .into_iter() на литералах массива, который ввиду авто-борровинга вызывает <&[T]>::into_iter, что, в принципе, аналогично вызову .iter(). Добавление реализации IntoIterator для массивов технически сломало бы этот код. Не исключено, что в будущем на этот шаг всё-таки пойдут, и array::IntoIter::new останется на свалке истории.cargo doc добавляет в документацию методы, полученные при помощи deref coercion произвольной глубины применения. До этого изменения, если у нас были типы A, B и C с реализациями impl Deref<Target = B> for A и impl Deref<Target = C> for B, то документация к A показывала методы A и B, но не C. Теперь же будут видны и методы C.
cargo test -- --include-ignored. До этого можно было запустить либо основные тесты, либо игнорируемые, но не оба набора сразу.std::iter::Peekable::{next_if, next_if_eq}, которые возвращают следующий элемент только в том случае, если он удовлетворяет предикату/равен переданному значению. Невероятно полезная вещь при написании парсеров.str::split_inclusive, который разбивает строку на подстроки по разделителю, включая сам разделитель в подстроки (возрадуйся, @rustamann!). Аналогичные методы добавлены для слайсов (split_inclusive/split_inclusive_mut)

