Daniil
мне раст нравится, но я пока не распробовал. Попробую пару c++ проектов переписать и пойму наверное прелести раста
Αλεχ
всегда помни, что в языках типа жабы копирование в хип на каждый чих
Αλεχ
так что хуже чем там ты точно не делаешь
Cat
копирование указателя, я правильно понял?
Αλεχ
копирование указателя, я правильно понял?
ну в случае строк будет копирование указателя, ибо они CoW
Αλεχ
а в случае структур они просто каждый раз копируются и все
Αλεχ
целиком
Cat
целиком
(предлагаю остановиться)
Αλεχ
(предлагаю остановиться)
я про структуру сказал
Αλεχ
а не про класс
Daniil
последний моментик и я вроде все: pub fn prepare_table(files_clients:Vec<(String, Vec<Client>)>) -> Vec<(String, Vec<ExClient>, f32)> { let mut write_data = Vec::new(); let mut exclients = Vec::new(); let mut total:f32 = 0_f32; for file_clients in files_clients { for client in clients.clone() { let exclient = ExClient { ... }; exclients.push(exclient) } write_data.push((file.to_string(), exclients, total)) } write_data } value used here after move Как тут все по красоте сделать? Я же вроде пушу в вектор а не перемещаю его
Αλεχ
https://www.reddit.com/r/rust/comments/96ghod/i_tried_rust_and_heres_my_opinion_of_it/?utm_source=reddit-android
Маjко
catch_unwind же
Не поймает между тредами
Маjко
Была функция, но выпилили
Маjко
Или костыли с Drop, Arc<Atomic>`и `panicking()`
Это интереснее, но не помогает передать ошибку
Маjко
Хуево что нельзя заждойниться с таймаутом
Маjко
Если б было можно, можно было бы и панику перехватить
Маjко
Маjко
Почему бы и нет
Денис
Давно они Cow?
я так понимаю речь про джаву
Berkus
у меня уже все болит, дедлайн в пн, а я раст открыл пару дней назад, почти 72 часа без нормального сна ))
наглядное определение термина "экстремальное программирование"
Daniil
Что поделать) Никто не говорил что будет просто
Ivan
https://www.reddit.com/r/rust/comments/96ghod/i_tried_rust_and_heres_my_opinion_of_it/?utm_source=reddit-android
> I don't like the way it is implemented. They need to fix this. /thread
Vladimir
в упомянутых экосистемах - это не настолько проблема,можно такие какахи обернуть и жить. а в расте недальновидность автора либы - это боль
Согласен, в кустах вообще не проблема, Рав указатели спокойно гончешь между потоками и пофиг
Pavel
Согласен, в кустах вообще не проблема, Рав указатели спокойно гончешь между потоками и пофиг
пока это не доставляет проблемы или есть возможности костыльно закрыть - может быть вполне решением
Vladimir
Pavel
Ага, а потом когда на 1к клиентов гонка данных находится, тоже кайф
я о том что криво написанная либа в расте - доставляет больше проблем чем криво написанная в других экосистемах. а факт утечек или race conditions возможно что в расте что в других экосистемах. раст просто больше гарантий даёт
Vladimir
я о том что криво написанная либа в расте - доставляет больше проблем чем криво написанная в других экосистемах. а факт утечек или race conditions возможно что в расте что в других экосистемах. раст просто больше гарантий даёт
Если сейфовый раст, то он какраз оберегает от race condition, и этим апи либы какраз и доставляет дискомфорт. Если все писать в ансейфе, то тогда разницы с сихой не будет
Anonymous
https://twitter.com/mononcqc/status/999471339474968576?s=19
Pavel
Если сейфовый раст, то он какраз оберегает от race condition, и этим апи либы какраз и доставляет дискомфорт. Если все писать в ансейфе, то тогда разницы с сихой не будет
я с тобой целиком согласен. я больше про боль того что автор либы не подумал о том что тебе нужно. а ты «пропатчить» / расширить изменить не можешь (в условиях правил раста) и вот тут боль: или форкаешь и поддерживаешь свой форк или убеждаешь автора что это нужно (а тут как повезёт и не факт что это многим нужно и может автору нужно лишь архитектуру переделать, чтоб тебе можно было как пользователю впилиться, а автор так может не думать / у него нет времени, а у тебя тоже как бы не много и т.д.) и в общем все сводится к тому что или пиши сам или ищи как изъебнуться чтоб переиспользовать где натыкаясь на компилятор и его правила, а где на решения автора. А про другие экосистемы - там менее строго это сделано и выработаны почти стандартизированные костыли 😆 что дают обойти многие ограничения
Vladimir
Да я к тому, что если нужно Костыльный обход, можно завернуть рц в Нью тайп, и сделать unsafe impl Send. И будет тоже самое что в с++.
Маjко
Что сейчас из модного есть в key-value хранилищах? Интересуют встраиваемые базы
Маjко
Желательно pure rust или хотя б вменяемые биндинги
Маjко
> sled likes eating data! it's alpha Отлично! Игрушечному проекту игрушечная БД
Маjко
А вообще нагрузка по хранению высокая будет сравнительно, не хотелось бы
պլհկ
rkv
Маjко
rkv
API довольно жуткий, но сойдет
Маjко
Просто данные перекачивать долго, если проебутся
պլհկ
Ну есть просто lmdb крейт
Маjко
rkv
Спасибо
Marat
Вообще конечно для бд я бы проверенное брал rocksdb там
Маjко
Еще смотрю на rocksdb и ее биндинги
Маjко
Собстна, наверноее ее и возьму, не рокетсайнс, но в рабочем проекте она, надо поиграться перед тем как в прод лезть
Vladimir
Ну мы юзаем
Vladimir
Нам норм
Маjко
Блокчейнеры тоже?
Vladimir
А след это не то, что бинкод поверх файлов?
Vladimir
Ага
Marat
Бинкод самому надо наворачивать
Vladimir
Не круто
Vladimir
Жду когда бинкод навернут для джавы
Vladimir
Или есть какой-то формат аналог бинкода для жавы/жс/питона?
Alexander
Или есть какой-то формат аналог бинкода для жавы/жс/питона?
Есть https://msgpack.org/index.html например, не знаю насколько он аналог...
Marat
Жду когда бинкод навернут для джавы
Так бинкод же это вроде чистое бинарное представление раст типов, не?
Vladimir
Есть https://msgpack.org/index.html например, не знаю насколько он аналог...
Там теги пишутся в данные, не хотеть такого
Marat
Между языками лучше какой-нибудь protobuf юзать
Vladimir
Протобаф не хочет кастомные типы статического размера
Alexander
Ещё https://en.wikipedia.org/wiki/CBOR есть например. Но там тоже оверхед будет...
Alexander
https://capnproto.org/ - идеал! 😂
Alexander
Alexander
Очевидно, что невозможно одну и ту же структуру передавать между разными языками без сериализации/десериализации где-нибудь. Поскольку у них разный memory layout.
Vladimir
https://capnproto.org/ - идеал! 😂
Там реализация такое говно
Alexander
Там реализация такое говно
Может, реализация на Rust лучше?