Size: a a a

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

2020 April 02

В

Вафель in Rust — русскоговорящее сообществo
Also, matches! может и с данными работать
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Ну и зачем макрос, когда можно без макроса?
источник

В

Вафель in Rust — русскоговорящее сообществo
Хз, там if let Test::B = data {} конечно проще
источник

p

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

M

Marat in Rust — русскоговорящее сообществo
polunin.ai
Ну и зачем макрос, когда можно без макроса?
ну может, имплементить Eq слишком недешево, если по data содержание enum дорого-богато
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Реализация встроенных типажей через derive практически ничего не стоит
источник

M

Marat in Rust — русскоговорящее сообществo
Вафель
Хз, там if let Test::B = data {} конечно проще
только так:
if let Test::B = data {} else { .. }
источник

M

Marat in Rust — русскоговорящее сообществo
по-моему, с макросом проще читается, плюс он if и | поддерживает
источник

M

Marat in Rust — русскоговорящее сообществo
polunin.ai
Реализация встроенных типажей через derive практически ничего не стоит
enum Tree {
 Leaf,
 Node(Tree)
}
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Marat
по-моему, с макросом проще читается, плюс он if и | поддерживает
if !matches(data, Foo::Bar(x) if cond) {}  это гениально будет
источник

В

Вафель in Rust — русскоговорящее сообществo
Marat
enum Tree {
 Leaf,
 Node(Tree)
}
Такой код не компилируется :)
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Marat
enum Tree {
 Leaf,
 Node(Tree)
}
Этот код не скомпилируется
источник

M

Marat in Rust — русскоговорящее сообществo
ну ок, с Box скомпилится
источник

В

Вафель in Rust — русскоговорящее сообществo
Marat
только так:
if let Test::B = data {} else { .. }
Да, верно. Мне уже спать пора, не заметил что там не в условии
источник

M

Marat in Rust — русскоговорящее сообществo
polunin.ai
Реализация встроенных типажей через derive практически ничего не стоит
ну или будет у тебя какой-нить Result, который Eq не дерайвит
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Marat
ну или будет у тебя какой-нить Result, который Eq не дерайвит
Он дерайвит его если его элементы его дерайвят же
источник

M

Marat in Rust — русскоговорящее сообществo
хм, ок, я с помощью if let или match обходил, пока макрос не появился
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Marat
enum Tree {
 Leaf,
 Node(Tree)
}
ток это не дерево, а список
источник

M

Marat in Rust — русскоговорящее сообществo
Alex Zhukovsky
ток это не дерево, а список
ну да, накосячил
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Marat
ну или будет у тебя какой-нить Result, который Eq не дерайвит
дерайвить eq можно почти всегда, трудно придумат ьситуацию когда он хуже
источник