Sherzod
но с усами
Sherzod
Наверное вся в папку
Tuntz
есть поле Option<Option<T>> - как переделать, чтобы можно было различать None и Some(None(...))?
Tuntz
Можно так, но это самописный костыль. Есть какое-то стандартное решение? #[derive(Serialize, Deserialize)] struct ValueContainer { value: T } Option<ValueContainer<Option<T>>>
Tuntz
различать при (де-)сериализации json через serde
Tuntz
недописал
Loyd
Так от формата зависит
Loyd
Если таргентный формат не умеет в алгтд (тот же json), то только костылить
Loyd
Хотя я удивлён, почему до сих пор не придумали поверх json tagged union-ов, скажем использовать __tag
Loo
различать при (де-)сериализации json через serde
ну то есть в случае если None, то в json -> null, в случае если Some(None) что ты хочешь увидеть? не null, а допустим kek-pook?
Loyd
Есть же в серде
ого. Надо глянуть
Loo
если ты так хочешь, то юзай
Loo
https://serde.rs/field-attrs.html#serdeserializewith--path
Loo
https://serde.rs/field-attrs.html#serdedeserializewith--path
Tuntz
Loo
похер, что в жсоне - главное, чтобы 2 растовых сервиса поняли друг друга
опять через кастом десериалайз функцию - понять можно будет
Tuntz
важен формат, но не важно сериализованное содержимое
Sergey
ого. Надо глянуть
https://serde.rs/enum-representations.html#internally-tagged
պլհկ
2 раст сервиса и так поймут
պլհկ
не понял зачем костыли?
Tuntz
2 раст сервиса и так поймут
если json, то не поймут
Vladimir
если будет два варианта с одним внутренним типом
Vladimir
struct Enum { Variant1 (String), Variant2 (String), }без тега будет до первого удачного парсинга, т.е. Enum::Variant2("abc".to_owned)).serialize().deserialize == Enum::Variant1("abc".to_owned())
Cuno
если json, то не поймут
deserialize(serialize(object)) != object что ли?
Vladimir
Но тег можно добавить и это не проблема
պլհկ
https://play.rust-lang.org/?gist=2a27a442ef21ca52cabb8701e94d9522&version=stable&mode=debug
Cuno
https://play.rust-lang.org/?gist=346b98c2793aec9fc2551b69795e4154&version=stable&mode=debug
Cuno
@notplhk Some(None) - проблемный кейс
Αλεχ
https://medium.com/@iopguy/fizzbuzz-can-finally-be-implemented-in-stable-rust-87649a882f2d прелестно
А что там нельзя было на стейбл расте написать?о_0
Αλεχ
https://github.com/rust-lang/rfcs/pull/2426#issuecomment-391327320 - ставьте минусы кто может
Berkus
А что там нельзя было на стейбл расте написать?о_0
хз, но начинать статью про fizzbuzz c trait Monoid меня порадовало
Αλεχ
да я тоже подумал
Αλεχ
это это fizzbuzzenterpriseedition
Αλεχ
вариация на тему
-__-
https://github.com/rust-lang/rfcs/pull/2426#issuecomment-391327320 - ставьте минусы кто может
Emoji driven development? Всем плевать на минусы, уже ведь объяснили.
Αλεχ
просто universal impl trait уже проскочил
Αλεχ
теперь я предпочту быть на страже стейбла
Sergey
бля
Sergey
я вот думаю
Sergey
а нахуя
Sergey
нахуя там throw
Sergey
try
Sergey
они ебанулись?
Cat
да
Sergey
раст вроде решил проблему эксепшенов, но кто-то хочет опять все сломать нахуй
Cat
толерастия дривен девелопмент
Berkus
они ебанулись?
пришли джависты и такие, А чо. где сроу, где ДжаваБинАбстрактФактори?
Berkus
как тут бросить эксепшен
Cat
раст вроде решил проблему эксепшенов, но кто-то хочет опять все сломать нахуй
нет, это просто сахар "для тех, кто приходит из других языков"
Sergey
пизда языку с такими предложениями
Cat
+ t.me/rustjerk/27391
Cat
что ж, там уже final comment period, так что поздравляю
Cat
нужно будет написать CI линтер, чтобы при наличии слов "throw" и "impl Trait" в аргументе, фейлил пайплайн
Αλεχ
Это RFC на первом месте по количеству 👎. А на втором вот что: https://github.com/rust-lang/rfcs/issues/1925 . И кстати его благополучно приняли. Так-что всё за то что это тоже пройдет
Cat
это https://github.com/rust-lang/rfcs/issues/1925
Cuno
хотя вот резерв ключевых слов мерджить уже собираются
Cat
postponed же
да, но.. > No concerns currently listed.
Kerrigan
кстати, я могу без проблем прицепиться к плюсовой либе?
Vladimir
ни у раста, ни у с++ нету стабильного ABI
Anonymous
Kerrigan
мда
Kerrigan
https://zeroc.com/downloads/ice похоже другого выхода нет
Anonymous
Ну bindgen вроде умеет к плюсам генерить биндинги, но там много ограничений.
Αλεχ
https://github.com/anp/rfcbot-rs/pull/210
Αλεχ
ахахахах
Αλεχ
ахахах
Αλεχ
ха
Αλεχ
мда
Kerrigan
хотя... возможно я смогу провернуть всё через grpc