Size: a a a

2020 January 02

AZ

Alex Zhukovsky in rust_offtopic
посмотри как реббит сделан
источник

AZ

Alex Zhukovsky in rust_offtopic
херово что ли?
источник

OA

Oleg Andreev in rust_offtopic
link?
источник

AZ

Alex Zhukovsky in rust_offtopic
Bogdan
Посоны, есть у кого-то пример, где реально очень сильно надо enum как в расте, как контрпример енама в С++/С# ?
class Expression {
   UnaryExpression(Op),
   BinaryExpression(Op, Op),
   ThrowExpression(Throw),
   ....
}
источник

B

Bogdan in rust_offtopic
thnx
источник

AZ

Alex Zhukovsky in rust_offtopic
Bogdan
thnx
Лол, даже проще
источник

AZ

Alex Zhukovsky in rust_offtopic
Bogdan
thnx
enum JsonValue {
   Null,
   Bool(bool),
   Number(Number),
   String(String),
   Array(Vec<JsonValue>),
   Object(Map<String, JsonValue>),
}
источник

OA

Oleg Andreev in rust_offtopic
тут смысл в том, что у тебя объект может быть Opaque или "with Witness data". У верификатора будет только Opaque версия, а у прувера - каой-то конкретный тип.
источник

AZ

Alex Zhukovsky in rust_offtopic
Alex Zhukovsky
enum JsonValue {
   Null,
   Bool(bool),
   Number(Number),
   String(String),
   Array(Vec<JsonValue>),
   Object(Map<String, JsonValue>),
}
самый наглядный
источник

OA

Oleg Andreev in rust_offtopic
но в их общем коде будет один и тот же тип
источник

OA

Oleg Andreev in rust_offtopic
Alex Zhukovsky
самый наглядный
еще лучше
источник

OA

Oleg Andreev in rust_offtopic
джейсон в енум мы описали
тут нул, там бул, а здесь - массив
но форс-анврап стажер поставил
схитрив
источник

B

Bogdan in rust_offtopic
Alex Zhukovsky
enum JsonValue {
   Null,
   Bool(bool),
   Number(Number),
   String(String),
   Array(Vec<JsonValue>),
   Object(Map<String, JsonValue>),
}
Ненужен, есть же наследовпние и полиморфизм, вон в NewtonsoftJson на абстрактных классах сделано 🤓
источник

AZ

Alex Zhukovsky in rust_offtopic
Bogdan
Ненужен, есть же наследовпние и полиморфизм, вон в NewtonsoftJson на абстрактных классах сделано 🤓
все языки тьюринг-полные и на люблм можно сделать что угодно
источник

B

Bogdan in rust_offtopic
Зачем свитч/матч, если есть шаблон проектирования Visitor 😃
источник

AZ

Alex Zhukovsky in rust_offtopic
примера с энумами который нельзя переписать на наследование с визитором не существует
источник

AZ

Alex Zhukovsky in rust_offtopic
потому что визитор это эмуляция АДТ в ооп языках, по-определению
источник

OA

Oleg Andreev in rust_offtopic
Bogdan
Зачем свитч/матч, если есть шаблон проектирования Visitor 😃
зачем свитч/матч если в серде у тебя есть Visitor и кол-во абстракций такого, что чтоб обернуть to_bytes() / from_bytes() в серде нужно написать 50 строк с визитером
источник

AZ

Alex Zhukovsky in rust_offtopic
все что можно показать - что тут 10 строчек и компилятор не будет заставлять тебя проверить кейс если ни один не сматчился, а с наследованием у тебя будет 100+ строк, и компилятор везде будет ругаться "а допиши-ка дефолтный кейс"
источник

С

Слава in rust_offtopic
Знатоки английского, а подскажите, как будет звучать на английском языке фраза "Зря вам Ельцин интернет провёл".
источник