
Size: a a a







"a"? Проще простого!

&mut T, где левый аргумент — это элемент, который находится правее, а правый аргумент — это аргумент, который находится левее (если считать, что элементы в векторе расположены слева направо). Да, это написано в документации, но кто ж её читает...


#[track_caller] (кстати, когда его только предлагали, он назывался blame_caller), который позволяет функции узнать информацию о месте, в котором она была вызвана (ну, почти: месте вызова выше по стеку в первой функции в стеке без этого атрибута). Эта информация предоставляется при помощи магического конструктора std::panic::Location::caller, который возвращает &'static Location<'static>, и, как показывает пример из документации к конструктору, у Location есть геттеры, покрывающие функционал вышеуказанных макросов. Таким образом, ничто не мешает написать свой, скажем, line!, который будет разворачиваться в ::core::panic::Location::caller().line().
impl<A, E, V: FromIterator<A>> FromIterator<Result<A, E>> for Result<V, E>, которая позволяет при помощи .collect() собирать итератор результатов в результат с коллекцией или с первой ошибкой. Почему-то несколько менее известен тот факт, что для Option есть аналогичный impl со схожей семантикой.



