
Очередной наброс на тему Rust. Как всегда, всё самое интересное — в комментариях.
habr.com/ru/post/504622/
Size: a a a
interface{}
, рефлексия, отсутствие ленивости, захардкоженность слайсов. Но, конечно, вишенка на торте — это единственный PR, который так и не был смержен, и реакция Пайка на него.Comparator<T>
с методом compare(&self , &T, &T) -> Ordering
. Само по себе это не очень интересно, но на базе этой абстракции можно построить уже непосредственно полезные сущности. В частности — то, что предоставляет сам крейт, бинарную кучу с порядком на элементах, заданных компаратором.std::cmp::Reverse
. Это не только не очень удобно, но и лишает возможности за константное время превратить кучу в вектор. В случае с кучей из comparator такой проблемы не возникает, потому что можно легко сделать кучу с обратным порядком:use comparator::reverse_order;К сожалению, это, в сущности, всё, что есть в comparator, а последнее обновление было год назад. С другой стороны, даже в текущем виде крейт полезен, поэтому я и решил о нём рассказать.
use comparator::collections::BinaryHeap;
let mut heap = BinaryHeap::with_comparator(reverse_order());
make_unique::<Name>()
на C++, и долго не мог понять почему компилятор кричит что-то про неймспейсы на турборыбу.asycn/await
более не требует thread-local storage и потому может быть использован в #[no_std]
. К сожалению, ввиду недавних событий в США, а также мнения Rust core team, что "tech is and always will be political", внятного описания новых фич в блогопосте нет, так что лучше сразу раздел в RELEASES.md открыть.