es
Feedback
Блог*

Блог*

Ir al canal en Telegram

Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here

Mostrar más
1 922
Suscriptores
+224 horas
-27 días
-1330 días
Archivo de publicaciones

photo content

#prog #meme про оптимизацию

#prog #rust хайлайты: * макрос env! теперь работает и с сырыми строками. * раньше алиасы типов были чем-то вроде макросов в том смысле, что их корректность проверялась после раскрытия. Синтаксически Rust позволяет иметь ограничения на обобщённые типы у алиасов, но они игнорируются. После этого PR они действительно проверяются — правда, пока лишь за фичей. * парсер Rust теперь корректно обрабатывает тернарный оператор и выдаёт сообщение о том, что такового в Rust нет. * реализованы обобщённые константы. Фича пока сырая, даже RFC под неё не написан. * конструкторы слабых счётчиков ссылок теперь стабилизированы как const-функции, как и NonNull::as_ref * AtomicBool имеет такое же представление в памяти, как и bool. Некоторые платформы не имеют нативных атомарных операций для 8-битных значений и потому эмулируют их при помощи CAS-циклов на атомиках большего размера. Этот PR переделывает swap-операции над AtomicBool на атомарные and и or, эксплуатируя тот факт, что bool может иметь только значения 0 и 1. Это изменение положительно сказалось на генерируемом коде. * io::Empty теперь умеет то же, что и io::Sink. Внимание, этот тривиальный PR проболтался БОЛЬШЕ ГОДА!!! * rustdoc некорректно рендерил impl Sized типы. Этот PR исправляет недоработку Было: fn sized(x: impl ) -> impl fn sized_outlives<'a>(x: impl 'a) -> impl 'a fn maybe_sized(x: &impl ) -> &impl fn debug_maybe_sized(x: &impl Debug) -> &impl ?Sized + Debug Стало (как и должно быть): fn sized(x: impl Sized) -> impl Sized fn sized_outlives<'a>(x: impl Sized + 'a) -> impl Sized + 'a fn maybe_sized(x: &impl ?Sized) -> &impl ?Sized fn debug_maybe_sized(x: &(impl Debug + ?Sized)) -> &(impl Debug + ?Sized) * В clippy есть линт на код подобного вида: let mut vec = Vec::with_capacity(len); vec.resize(len, 0); , предлагая переписать на
let mut vec = vec![0; len];

, что и идиоматичнее, и быстрее. Теперь линт также работает, если вектор инициализирован через Vec::new(). * map_or на Result и Option помечен, как #[must_use]. * Command теперь может перенаправлять stderr порождённого процесса в stdout родителя.

#prog #rust хайлайты: * * * *

Итак, в чём же сложность данной задачи? В контекстной зависимости. Форматирование каждого терма зависит от того, в каком контексте он находится. Соответственно, для корректного форматирования нужно этот самый контекст передавать. Это также позволяет избежать смешения ответственности: каждый вариант сам отвечает за своё форматирование и не смотри на внутренние термы, лишь прокидывает корректный контекст. Что же в данном случае является контекстом? Знак перед термом. Причём важно то, какой именно: плюс или минус. Также важно, что это опциональное значение: на верхнем уровне никаких знаков перед выражением нет. Положительный литерал не нужно обрамлять в скобки, отрицательный литерал — нужно, но только если перед ним есть знак. Или, иными словами, отрицательный литерал не нужно обрамлять в скобки только в том случае, если он является первым слагаемым в выражении целиком — или уже отделён скобками. Отрицание схоже с отрицательным литералом: только первое слагаемое не нужно обрамлять скобками, в остальных случаях надо. При форматированию вложенному терму в качестве контекста передаётся знак минус. Сложение — тот случай, когда нужно различать плюс от минуса в переданном контексте. В случае плюса или отсутствующего знака можно форматировать как есть, а в случае минуса перед сложением нужно ставить скобки. Так как это сложение, для второго слагаемого контекстом всегда является знак плюс. Для первого слагаемого немного сложнее: если скобки не ставятся, то контекст пробрасывается (так как знак перед термом тот же самый), а если ставятся, то, очевидно, никаких знаков перед первым слагаемым нет и в качестве контекста передаётся None. Код

Patch Quest — лучшая игра, потому что там есть Rust zone

Чат*, а можете подсказать компьютерную мышь, у которой не дохнет колёсико? У моей нынешней одно из положений при прокручивании не даёт никакой реакции, а иногда даже при физическом прокручивании вниз прокручивает область на экране на одно деление вверх.

photo content

На те мемос
На те мемос

photo content

Парочка #politota #meme подряд

Repost from TrapsWorld
photo content

(#лингво?) #meme

Undercut — это подкат

😒🤚 Жать на ссылку 😏👉 Жать на фрукт в соковыжималке #шитпостдлярепостапопячечной

😒🤚 realityck 😏👉 borrowck

Вы спросите меня, люблю ли я мужчин. Я отвечу, что да. Особенно напечатанных на разноцветных узких кусочках бумаги.

photo content