Size: a a a

2020 November 25

r

red75prime in Rust Beginners
Саша
но это все же реализации нет, просто объявление сигнатур
А, это реализуется в конкретных десериализаторах. https://docs.serde.rs/src/serde_json/value/de.rs.html#413-421 для serde_json, например
источник

Д

Дмитрий in Rust Beginners
Mikail Bagishov
Tools -> Expand в плейграунде
источник

EG

Emmanuel Goldstein in Rust Beginners
Дмитрий
ага, это уже понял, что дерайвить нужно два трейта. а как можно глянуть как дерайв реализовал код? интересно просто если имплементировать PartialEq, то как его описывать
https://github.com/rust-lang/rust/blob/master/compiler/rustc_builtin_macros/src/deriving/cmp/partial_eq.rs
Вот реализация #[derive(PartialEq)] в компиляторе
источник

С

Саша in Rust Beginners
red75prime
А, это реализуется в конкретных десериализаторах. https://docs.serde.rs/src/serde_json/value/de.rs.html#413-421 для serde_json, например
вот, тут я буксую, не собирается картина, использую serde_yaml

в  __deserializer у нас получается лежит вот эта структура https://github.com/dtolnay/serde-yaml/blob/master/src/de.rs#L66 которая реализует типаж de::Deserializer

при вызове _serde::Deserializer::deserialize_map(__deserializer, …) компилятор понимает что надо использовать реализацию https://github.com/dtolnay/serde-yaml/blob/master/src/de.rs#L652

такая последовательность?
источник

DD

Daniil Davydov in Rust Beginners
можно как-то передать ссылку на метод обьекта без оборачивания в кложу?
источник

DD

Daniil Davydov in Rust Beginners
источник

KR

Kai Ren in Rust Beginners
Только если метод статический
источник

KR

Kai Ren in Rust Beginners
Для обычного метода тебе же надо receiver передать, потому кложа.
источник

JC

Julian =) Coffee in Rust Beginners
Callee::method
источник

DD

Daniil Davydov in Rust Beginners
Kai Ren
Для обычного метода тебе же надо receiver передать, потому кложа.
ясно. оно такто могло бы само замкнуться на self, из контекста ведь всё понятно
источник

KR

Kai Ren in Rust Beginners
Daniil Davydov
ясно. оно такто могло бы само замкнуться на self, из контекста ведь всё понятно
По идее - да. Был возможно бы приятный сахар. Но почему не реализовано - хз, не приходилось читать обсуждения/мотивацию этого. Вполне вероятно там есть какие-то неочевидные подводные камни с тем, как бы эта фича играла относительно других фич языка.
источник
2020 November 26

A

Adatan in Rust Beginners
как у Value из serde_json получить список всех индексов, если они вообще есть...
источник

MB

Mikail Bagishov in Rust Beginners
Ты про список ключей?
источник

A

Adatan in Rust Beginners
Mikail Bagishov
Ты про список ключей?
ага
источник

MB

Mikail Bagishov in Rust Beginners
Итератор по ключам можно взять у мапы. В Value может быть завернута мапа, а может и какой-то из 5 других типов значений json.
Нужен match или as_object
источник

A

Adatan in Rust Beginners
А, кстати да, чет не заметил изначально
источник

JM

John Meow in Rust Beginners
Есть какой-нибудь макрос для разворачивания значения энума? Чтобы не писать много раз
match val {
   MyEnum::MyValue(v) => v,
   _ => unreachable!(),
}
источник

MB

Mikail Bagishov in Rust Beginners
Геттеры сгенерировать
источник

MB

Mikail Bagishov in Rust Beginners
источник

JM

John Meow in Rust Beginners
Шикарно, спасибо
источник