Денис
ещё раз благодарю за потраченные мозговые усилия :)
Dårk
В остальном средней глухоты
так и что ж делать? http сервак поднимать на локалхосте?
Dårk
и что мне делать в случае обнаружения цикла?) записывать индекс? ^_^
боже, да посмотрите уже готовые фреймворки для сериализации. хотя бы тот же NSCoding / NSKeyed​Archiver (:
Денис
как мне твой NSCoding рекурсивную структурку заэнкодит/задекодит?
Денис
и чем это вообще от серде отличается?
Денис
"как?" — "да" :)
Cat
Да
Dårk
он вроде собирает большую коллекцию всех объектов, со всеми ключами к ним
Dårk
и выливает всё это месиво в бинарный поток своего внутреннего формата
Cat
ООО
Cat
Это то, что я хотел
Cat
Бинарный поток месива
Dårk
(пишу по памяти из книжки и экспериментов 10-летней давности)
Макс
В итоге всё так и сделал, как в самом дизеле, бойлерплейта оказалось куда меньше, чем мне казалось)
Денис
ну ваще могло бы сработать на самом деле
Dårk
А для руста он есть?
хз. мне serde хватало для не-рекурсивного.
Cat
Процесс: обходим все ветки дерева и заполняем сет из обнаруженных объектов Вместо самих объектов пишем адрес в сете Сериализуем как бинарь, вуа -ля
Cat
Thank you, thank you a lot!
Денис
вообще это может сработать.. сделать специальный атрибут на филд, видя который, серде сгенерирует промежуточную структуру с плейсхолдером (оборачивание в Option)
Денис
хотя ваще это жесть какая-то
Денис
лютая просто
Dårk
(на самом деле я фанатик obj-c, и старого труъ apple; поэтому на любой вопрос могу ответить в духе "у них сделано круче 😎")
Dårk
Гуглани как сериализовать циклические графы
нет такого "циклицеские деревья" :) есть "граф с циклами", а есть по определению лишенное циклов "дерево" :)
Cat
Дааа даа
Cat
Отстань
Dårk
хоть где-то мне образование с курсеры должно было пригодиться xD
Денис
в общем виде всё делают через индексы
Денис
но это всё может работать из коробки, только когда у тебя вот прям граф-граф
Cat
А нельзя в какую-нибудь графовую базу данных дампнуть?
Денис
а вот чтобы автоматически всё делать, когда у тебя по факту — граф, а по коду — не совсем, чё-т никак
Денис
да мне проще тогда промежуточные типы юзать)
Макс
Сам работаю на основной работе с проектом где по сути самописная распределённая бд
Денис
ага, пасиба
Денис
осталось понять, можно ли запилить универсальное решение на расте )
Anton
Давно на плэйграунде мультикурсорность? O_o
Anton
ага, пасиба
https://play.rust-lang.org/?gist=9c5bb31fc82df9b659e1dab3de1b516e&version=stable&mode=debug
Anton
Дай живой пример, самому интересно стало
Денис
а что не так с этим?)
Денис
дублирований внутри джейсона недостаточно, тебе обязательно подавай циклы? =)
Денис
если нужны циклы, надо будет rc::Weak использовать
Денис
(чего я щас не делаю, но вообще-то надо)
Anton
Данный пример работает не моздавая проблем, у тебя вроде чтото не выходило
Anton
Соз*
Денис
вообще дублирование — проблема
Anton
Ты хочешь, дедуп при серилизации?
Денис
в памяти у меня никакой дубликации нет)
Денис
поэтому о "дедупе" тут говорить неправомерно
Anton
Ну у вас аппетиты сударь)
Денис
щас будет с циклом
Alex
Csrting? Не OsStr?
Вооот. Ты прав.
Денис
@anti_on https://play.rust-lang.org/?gist=3ca026283b40ba5bff3e01183dec8779&version=nightly&mode=debug
Денис
ваще я щас склоняюсь к идее, что мне в коде нужно Link(Weak<RefCell<Stuff>>) заменить на Link(Id) и не ебать себе мозги
Anton
Плюсую
Anton
Анализатор пишешь?
Денис
кодогенератор для плюсов
Anton
В любом случае у тя два прохода выходит
Anton
Anton
404
Anton
Угу насвистели
Anton
Как назвать enum который описывает настройки? =)
Anton
ну вот есть сущности node и scope у них соответственно node_option scope_option - а вот какие там могуть быть option описывается в option_anotation ?
Dmitry
ну хоть парочку опций назови
Sergey
Сообщение тоже не оч
Макс
Привет, новый вопрос по поводу тестов. Нормально ли в них использовать .expect("Should be something")? Или нужно использовать только макрос assert? Есть ли какая-то разница между использованием assert и любой другой паникой?
պլհկ
Нет
Макс
И кстати — какой naming convention используется в довольно больших проектах для юнит тестов? Чтобы имена тестов были информативные, но не разрастались до двух строк длинной
Cat
test_functionality?... / test_feature