мне не нравится реальность
504 subscribers
1.33K photos
57 videos
56 files
1.02K links
Мне не нравится реальность
N.B. waffle is unhinged

- кормить назад: @meowaffle
- кормить вперёд: github.com/sponsors/WaffleLapkin
- чят: https://xn--r1a.website/+5Dtuan4dVE5kYTcy
- блог: blog.ihatereality.space
Download Telegram
так увлёкся фиксом микро-утилиты что забыл про остывающую еду :(
"После 15 минут наблюдения за выводом dbg!(&import) я решил что пора закругляться"
Окей, как выясняется структура была self-referential и Debug приводил к бесконечной рекурсии X)
Похвастаюсь и здесь что-ли: я реализовал Rust RFC 3216. Вот прям PR уже смерджили.

TL;DR: фича позволяет явно писать лайфтайм параметры для замыканий:

let _f = for<'a, 'b> |a: &'a A, b: &'b B| -> &'b C { b.c(a) };
// ^^^^^^^^^^^--- new!

https://github.com/rust-lang/rust/pull/98705
IF LET CHAINS ARE STABILIZED IN RUST 1.64

rust-lang/rust/pull/94927#event-7007028976

> 2 years, 4 months, 3 weeks and 1 day of long nights, obstacles and headaches.
> Hope stabilization won't be reverted but regardless, thanks to everyone who helped make this feature a reality.

Для тех кто не в теме, в расте можно делать паттерн матчинг в ifwhile цикле). Называется эта конструкция "if-let" и выглядит примерно вот так:

// выражение vvv
if let Some(x) = opt { ... }
// ^^^^^^^ паттерн

Синтаксис конфузный, но что имеем, то имеем, ладно. Проблемы (которые решает фича выше) начинается когда хочется сравнить сразу несколько выражений с паттернами. Можно использовать туплы:

if let (Some(x), Ok(y)) = (opt, res) { ... }

Но мало того, что это абсолютно не читаемо, мало того что это вычисляет res даже если паттерн и без него бы не сматчился, так ещё и в res тут нельзя использовать x. Поэтому это очень неудобно. Можно использовать вложенность:

if let Some(x) = opt {
if let Ok(y) = res { ... }
}

Но это ломает else (с таким вариантом его надо дублировать во все сложенные if'ы). Это всё настолько печально, что есть даже крейт if_chain с макросом который разбирается со всеми этими проблемами. Ну и фича которую вот стабилизировали — if let chains, которая позволяет писать вот так:

if let Some(x) = opt && let Ok(y) = res { ... }

😌
Forwarded from ozkriff.games 🦀 (ozkriff🇺🇦)
# Into the Breach: Advanced Edition is Out! 🎉

The free update refreshes a lot of stuff in one of the greatest tactic games: new mechs, weapons, pilot abilities, missions, enemies, music! I guess I have to spend at least a few more evenings crushing bugs. :)

The game is also released on iOS and Android but only for Netflix subscribers (for now?) - though the idea of having ItB on a phone is tempting.

More info: https://subsetgames.com/itb_ae.html
Into the Breach одна из моих любимых игр, до обновления я там всё-привсё прошёл и даже немного больше X)

Ко мне тут как раз стол пришёл, не хотите стрим где я щупаю обновление, например завтра? 👀
Совсем скоро начнём! 👀

upd: начали кста
Я хочу ещё в ItB: AE поиграть, так что сегодня вечером, в 15:00 UTC будет стрим опять..

https://www.twitch.tv/wafflelapkin