Size: a a a

2020 February 20

p

polunin.ai in rust_offtopic
Возвращает Option<InnerData>
источник

В

Вафель in rust_offtopic
Gymmasssorla
Делай бигинты
Не уверен на 100%, но по идее бигинты и так работают
источник

G

Gymmasssorla in rust_offtopic
Ну я не в теме, просто сказал
источник

В

Вафель in rust_offtopic
Gymmasssorla
Ну я не в теме, просто сказал
да тут все не в теме, но просто говорят
источник

p

polunin.ai in rust_offtopic
polunin.ai
Возвращает Option<InnerData>
Хотя обычной функцией такое не сделать наверное
источник

p

polunin.ai in rust_offtopic
Хм, подумаю
источник

r

red75prime in rust_offtopic
polunin.ai
Возвращает Option<InnerData>
Пока нет отдельных типов для вариантов енума, будет ограничено 1-tuple вариантами
источник

p

polunin.ai in rust_offtopic
Ну тут просто true/false без возвращения внутренней информации
источник

p

polunin.ai in rust_offtopic
red75prime
Пока нет отдельных типов для вариантов енума, будет ограничено 1-tuple вариантами
Не понял вторую часть
источник

r

red75prime in rust_offtopic
enum Foo { A(u32), B(Bar), C { a: u32 } } Foo::A и B получится так сделать, а для C не будет соответствующего типа
источник

p

polunin.ai in rust_offtopic
Хм, можно забахать дерайв макрос
#[derive(Matches)]
enum Foo {
 Bar
}
Который сделает
impl Foo {
 pub fn match_bar(&self) -> Option<()> {}
}
источник

p

polunin.ai in rust_offtopic
red75prime
enum Foo { A(u32), B(Bar), C { a: u32 } } Foo::A и B получится так сделать, а для C не будет соответствующего типа
Предположим что у меня все варианты Foo(val), как такое сделать?
источник

p

polunin.ai in rust_offtopic
То есть тупл с одним элементом
источник

r

red75prime in rust_offtopic
macro_rules! make_matchable { (enum, trait_name) => { определяем enum; определяем трейт c методами для каждого варианта; реализуем трейт }; }
источник

p

polunin.ai in rust_offtopic
red75prime
macro_rules! make_matchable { (enum, trait_name) => { определяем enum; определяем трейт c методами для каждого варианта; реализуем трейт }; }
Как варианты получить?
источник

r

red75prime in rust_offtopic
будет не .match(Foo::A), a .as_a(), правда. Распарсить определение enum'а, которое будет подаваться на вход макроса,  ну и имена методов нужно будет туда вставить. Что-то вроде enum Foo { A(A) => as_a, }
источник

p

polunin.ai in rust_offtopic
Норм
источник

p

polunin.ai in rust_offtopic
Но я дерайв макросом все же сделаю наверное, так проще
источник

r

red75prime in rust_offtopic
Ну и без отдельного трейта можно обойтись. Сделать inherent impl
источник

p

polunin.ai in rust_offtopic
источник