Oleg
а какие операции дерево должно поддерживать?
Anton
ну собственно там все деревья поддерживают все опции, вопрос всегда в сохранности данных которые они содержат, и лайфтайме чтобы можно было практично банально мне к йоге коннектиться
Oleg
ну я не про там
Oleg
я про твою задачу
Anton
элемент у меня должен хранить инстанс стилевой системы, своей личной, она и отрисовки делает и хранит все опции рисования и стилей, когда лайаут запускает перерисовку - я обхожу все элементы сверху вниз и запускаю из этого стилевого процессора рисование. Также у меня лайаут на йоге, инстанс узла йоги я храню в как раз этом стилевом процессоре. При добавлении элемента дочернего - мне нужно вызвать метод insert в родительной ноде йоги. После удаления собственно remove. Чтобы работал лайаут уже позиций. В случае с rctree у меня подобной операции не получается ибо всегда у меня ошибка борроу чекера и уже в рантайме.
Anton
из требований особых - только то что созданный элемент после удаления, изчезает из общего дерева, но сохраняется сам по себе, для возможности повторной вставки в дерево с сохранением всех данных. Поэтому я думаю использовать rctree ибо там все работает на рефсел ссылках, и некоторые элементы таким образом можно было бы например склонировав запихивать в разные колбэки для переиспользования. Ну тоесть человек создал один контейнер, поместил в него дочерний элемент, потом создал еще одну rc ссылку, и имеет возможность в рантайме например из колбэка изменить стили или класс.
Anton
короче мне нужен совет
Anton
и идеи
Anton
в чем особенности подходов хотябы
Cuno
Anton
Oleg
Oleg
не все элементы массива или арены обязаны быть узлами в каком-то дереве
Anton
ну тоесть я могу сохранить ссылку на элемент для получения содержимого например?
Anton
просто код довольно большой у всех, тесты очень маленькие, и мне сложно понять что использовать и тд
Anton
а пробовать дотошно каждый из них равносильно суициду
Anton
ну если коротко хотябы, в чем разница функциональная по возможностям между arena-tree и id-tree
Anton
это просто разные подходы с одинаковым выхлопом, имеют какие то ограничения или специфику, или что?
Anton
если чо я читал описания, но какой то особой разницы не заметил кроме способа управления
Oleg
Oleg
у id-tree никаких ограничений, ты получаешь больше indirection, это потенциально может замедлить код, но тот факт, что всё лежит в одном массиве подряд может улучшить locality
Anton
Anton
с arena-tree проблема с тем что если будут часто добавлять и удалять элементы у меня вся память утечет
Anton
с id-tree проблема с доступом к данным, ибо если врить описанию для каждого получения данных мне нужно будет перебрать весь список от а до я чтоб по айдишнику найти чтото
Anton
что не выбери
Anton
везде дилема хуев точеных и пик дроченых
Anton
бля похоже единственный вариант это пробовать все эти деревья
Anton
и потом когда если чтото ебнет, использовать другое
Anton
хорошо хоть что у меня этот тип элемента сильно обособлен в принципе
Anton
но бля все равно муторно, и никаких толковых пояснений нет
Berkus
нужны хорошие гайды как писать деревья
открываешь crates.io и там поиском находится как минимум четыре либы с примерно разными подходами.. .но торадиционно - Vec<Node> и индексы
Berkus
Berkus
остановился в итоге на id_tree для того конкретного случая
Anton
ок, тогда заюзаю id-tree
Anton
вроде по идее нормально
Anton
проблема в том потенциально что если размер дерева будет очень большой
Anton
то добавления и вставки будут медленными и жрать памяти слишком много
Anton
впрочем, не думаю что больше чем браузер)
Oleg
Oleg
для компактного хранения и удаления можно построить битовое дерево по принципу https://en.m.wikipedia.org/wiki/Fractional_cascading
Anton
Anton
это ад
Anton
Денис
это ад
ну вот глядишь и получишь к.ф.-м.н. под конец написания фреймворка
Денис
огонь же)
Anton
ненене
Anton
мой план оставаться прикладным бомжом до конца
Anton
собсно вся тема мутилась ради того чтобы просто и без ебли писать хорошие интерфейсы
Anton
по идее с учетом что дерево изолировано, потом можно будет нормальное сделать
Anton
а пока как сойдет, шоб было и лишь бы все остальные данные и обработчики также максимально были изолированы от дерева
Anton
на случай если в один прекрасный момент окажется что выбор был сделан хуевый и надо дерево нахуй с нул делать
Anton
бля короче надо идти спать
Kyrylo 🇺🇦🇺🇦🇺🇦
Есть ли какие-то хорошие примеры проектов-врапперов на REST API?
Anonymous
Как там у вас, в гугле забанили?
Anton
Anton
Anton
Anton
На какой поисковик переходим?
доня.
Anton
на vpn 🙂
Вот это дело. Пойду почитаю как сделать собственный VPN
Nardis
На какой поисковик переходим?
Как кратковременная мера: https://startpage.com — он малоизвестный, проксирует отчасти гугл и уважает прайваси. Еще есть совсем обособленный https://duckduckgo.com. А вообще это все прикладывание подорожника на последней стадии рака.
Anonymous
Для девелопа хорош и не только.
Anton
Пользуюсь DuckDuckGo как основным, но результаты у него бывают такие тупые, что проще в гугл зайти с таким запросов и ответ по первой ссылке.
Nardis
Особенно смотреть заблокированный Ютуб в 240p через одну проксю на 400 клиентов — будет просто отлично.
Anton
Это реальность, кстати. Вот же заживет рутуб
Bugworm
Anonymous
гугл там, кстати, через encrypted.google.com, так что ещё надо проверить его доступность.
Anton
Marat
Почитал про actix-web. Выглядит круто вроде. Кто-нибудь юзал? В чем подводные камни?
Berkus
Berkus
ракеты пока хватило
Marat
Рокет синхронный же вроде и на найтли только
Berkus
Berkus
но асинк-авейт вот только выпустили три дня назад
Berkus
так что может и рокет подтянется, а может я актикс затестирую
Berkus
у рокета мне нравится очень удобный и прозрачный дсл