Random Rust Dev
383 subscribers
81 photos
41 videos
1 file
32 links
Разработка на языке Rust.
Пишу простыни со своими мыслями о Rust и проектах на нем.
Download Telegram
Channel created
Всем привет!
В этом канале я буду постить разное о разработке на языке Rust.

Сам я не настоящий сварщик. У меня всего лишь один коммит в std.
Но я пишу на Rust c дорелизных времен и иногда немного преподаю его студентам.
А когда-то и писал на Rust за деньги в настоящий продакшн.

Сейчас у меня есть несколько пет проектов, о которых в основном и буду тут писать.
🤔2
Первый проект, о котором хотел бы рассказать это egui-snarl.
Я большой фанат egui как UI фреймворка для разработчика.
Может он и не самый красивый и местами делает слишком много работы, но на нем чертовски удобно писать UI, чего не скажешь о всех остальных UI фреймворках, что я пробовал, не только растовых.

egui-snarl это библиотека для создания визуальных нод-графов.
Тех самых нод графах что вы могли видеть в блендерах
Гудинях
Анрилах
egui-snarl позволяет создать нод-граф для любых целей.
У него вообще нет предположений о том что ноды и связи значат.
Ноды тоже, это просто данные.

Для начала я собрал вот такой простенький пример.
В отличии от существующих нод-граф крейтов у egui-snarl используется концепт вьюера.
Это он решает какие у ноды пины, сколько их, как выглядят, что рисуется рядом с ними.
egui-snarl предоставляет контейнер для графа Snarl и трейт для вьюера SnarlViewer.
При отрисовке Snarl::show регулярно обращается к SnarlViewer что бы отрисовать шапку ноды, узнать сколько сейчас пинов у ноды, отрисовать контент у пина, узнать как выглядит сам пин, а так же с событиями, что бы вьюер сам решил что делать, соединять ли ноды, а может между ними вставить еще одну для преобразования типа, удалять ли связь или ноду.