Size: a a a

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

2020 March 30

OA

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

OA

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

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
Oleg Andreev
например:

#[serde(with = "array64")]
roots: [Option<Hash>; 64],
вот у меня так не получилось что-то
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
сейчас ещё раз попробую, если не получится, попробую poc сделать
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Mikhail Voronov
а вообще можно ли как-то объявить точно такую же структуру, имплементировать для неё serde трейты, а потом просто указать, что это структура на самом деле libp2p::PeerId без Into/From?
Выглядит как serde(remote)
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
Mikail Bagishov
Выглядит как serde(remote)
там одна из вложенных структур с полями приватная (точнее pub(crate))
источник

p

polunin.ai in Rust — русскоговорящее сообществo
хмм, у меня что-то странное. Если я добавляю в ветку матча панику, то код работает. Если я его не добавляю, то программа буд-то впадает в вечный цикл. Она доходит до матча и дальше перестает работать. В чем может быть проблема?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
У тебя точно нет вечных циклов? Или бесконечной рекурсии?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
циклов нет в принципе, как и рекурсии
источник

p

polunin.ai in Rust — русскоговорящее сообществo
сам матч такой:
match me.now_read {
      0 | 1 => return Poll::Pending,
      2 => {
           if cond {
                  return Poll::Ready(Err());
            }
     },
      _ => unreachable!()
}
источник

p

polunin.ai in Rust — русскоговорящее сообществo
если я добавляю panic!() в первую ветку, код работает
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
а что вокруг? если 2 и !cond
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Oleg Andreev
а что вокруг? если 2 и !cond
он должен выйти из матча и продолжить выполнение функции. но он из матча не выходит.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
он все-таки там паникует в первой ветке, просто трейсбек от этой паники второй в списке трейсбеков
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
polunin.ai
хмм, у меня что-то странное. Если я добавляю в ветку матча панику, то код работает. Если я его не добавляю, то программа буд-то впадает в вечный цикл. Она доходит до матча и дальше перестает работать. В чем может быть проблема?
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
Oleg Andreev
например:

#[serde(with = "array64")]
roots: [Option<Hash>; 64],
в общем, там не получится так, потому что PeerId состоит из двух приватных полей, для которых нет геттеров
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
а тебе точно нужен либп2п?
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
я этим вопросом давно задаюсь)
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
но, в целом, нам вполне хватает функциональности, предоставляемой им. Иначе пришлось бы многое (например, кадемлию) делать более-менее вручную
источник

MV

Mikhail Voronov in Rust — русскоговорящее сообществo
скажем так, это необходимое зло(
источник