Size: a a a

Rust — русскоговорящее сообществo

2020 March 12

f

folex in Rust — русскоговорящее сообществo
let v: Result<&Name, &()> = Ok(Name::Variant { o: Opaque{} }).as_ref();, сработало!
источник

f

folex in Rust — русскоговорящее сообществo
а так еще лучше, спасибо! :)
источник

f

folex in Rust — русскоговорящее сообществo
источник

f

folex in Rust — русскоговорящее сообществo
В реальности будет получше выглядеть
источник

f

folex in Rust — русскоговорящее сообществo
А, блин. Только вот Result-то я не распаковал для v. drop для всего работает, а если сделать fn consume(v: Name) {}, то уже не сработает
источник

VM

Vladislav Markushin in Rust — русскоговорящее сообществo
От & можно избавиться, так как там и так ссылки лежат
    match v {
       Ok(Name::Variant { o }) => {
           if foo(o) {
               drop(v);
           }
       },
       _ => {}
   }
источник

r

red75prime in Rust — русскоговорящее сообществo
Только drop(v) будет дропать ссылки
источник

f

folex in Rust — русскоговорящее сообществo
red75prime
Только drop(v) будет дропать ссылки
Ну это я для примера написал, чтобы отдельный consume не писать. И сам себя обманул :)
источник

f

folex in Rust — русскоговорящее сообществo
В общем вот полноценный пример https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=793db1e166f992594534d1ae5857afaf

сори за кучу ссылок на плейграунд :(
источник

r

red75prime in Rust — русскоговорящее сообществo
Поглощать enum только в одной ветке, чтобы он после match'а сохранился, можно только если после поглощения делать return.
источник

f

folex in Rust — русскоговорящее сообществo
после матча не нужно сохранять его, ветка матча полностью его поглощает
источник

f

folex in Rust — русскоговорящее сообществo
Я просто хочу избежать пересборки енума для передачи в consume
источник

I

Ivan in Rust — русскоговорящее сообществo
Artem Ibragimov
поделитесь опытом применения rust в web-разработке (WebAssembly)
Прошлым летом делал быстрый решатель японских кроссвордов на расте, работает в браузере через WASM https://github.com/tsionyx/nono/
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
folex
В общем вот полноценный пример https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=793db1e166f992594534d1ae5857afaf

сори за кучу ссылок на плейграунд :(
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
А пока что не вижу вариантов
источник

r

red75prime in Rust — русскоговорящее сообществo
folex
Я просто хочу избежать пересборки енума для передачи в consume
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
И даже если потом это скомпилируется, у тебя тип не Copy и поэтому после уезда в консьюмера борроу-чекер будет выдавать ошибку
источник

f

folex in Rust — русскоговорящее сообществo
видимо да, но пересборка тогда не сильно хуже. Спасибо еще раз :)
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
👍
источник

r

red75prime in Rust — русскоговорящее сообществo
folex
видимо да, но пересборка тогда не сильно хуже. Спасибо еще раз :)
Ну или реализовать foo для Name. Захват по ссылке в if правда недавно ввели, на старых версиях rust не будет работать.

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=290c8873aa3a2ff590dbcddc4fc56011
источник