Cat
собственно да
Cat
тоже об этом хотел сказать
Cat
не понимаю, зачем ты добавляешь их на строках 11 и 12?
Денис
))))
Cat
ааа
Cat
всё, сорри, сплю
Денис
Ну на самом деле я пользуюсь макросом для заполнения сета, но нужного крейта нет на плейграунде)
Cat
https://doc.rust-lang.org/std/vec/struct.Vec.html#method.retain
Денис
Не вижу способа его применить, да и смысла, честно говоря, тоже))
Денис
Хочу напомнить, что имена файлов приезжают в виде итератора, а не вектора, и это важный момент
Cat
ну ок
Денис
Я спать, всем снов =)
Cat
не благодари https://play.rust-lang.org/?gist=c74549de79cc0302e2efb51154b461c6&version=stable&mode=debug
Golodnyi
В расте при каждом чище вызывается метод unwrap, этот метод юзается везде где ввод/вывод идет или в чем его смысл?
Max
Паника при ошибке это
Golodnyi
в расте принято кетчить это или тут философия что упало, то не должно жить?
Max
Просто в примерах для краткости пропускают нормальную обработку ошибок
Alexander
похоже что задачу @mexus надо делать через это: https://docs.rs/im/10.2.0/im/
Anton
Но сохранил себе
Anton
В целом неплохая статья
Anton
Но очень маленькая и инфы нужной мало(
Dårk
( ( ( ) ) )
պլհկ
(car (car (car (cdr x)))))
Судзумия
Проcdrиваем список
Anton
ты так его задал.. я честно прочитал 4 раза
сущность вопроса в том что у меня есть узлы йоги, структура Node, в ней можно хранить контекст и использовать по идее чистую йоговскую ноду как рут компонент дерева. А стили и контексты хранить внутри. У меня есть структура Style которая хранит в себе стили относительно классов, их же там меняет и сетапит. Но проблема в том что я не знаю как бы оформить красиво работу относительно узла йоги, все таки лайаут стили и апперанс стили разные. Лайаут стили вычисляются перед рендером, апперанс стили уже используются непосредственно для отрисовки. И поэтому у меня получается проблема вот такая: Я не могу просто взять из контекста style контекст на внешнее хранение, потому что тогда я не буду иметь доступа к ноде, и таким образом чтобы поменятб и аплайнуть стили, мне нужно или: - добавить методы дополнительные для Node (по грязному собственно реально форком себе йоги, ибо иначе внутри Node свои левые методы не добавить). Или - сделать обвязвку поверх ноды еще одной структурой, но тогда уже чистого дерева без доп обвязок не получится и кучу методов придется или транспортить, или копировать - делать копию ссылки и вставлять ее в контекст, но тогда получается какая то рекурсия, тобишь есть нода, в которой есть контекст, в котором есть нода, в которой есть контекст. Да и разыменование в таком случае по моему вызовет сегфолт.
Anton
крч я разжевал вопрос теперь
Anton
и теперь все его "честно прочитают" и опять забьют хуй
Anton
да еб
Маjко
Антон, мы вообще не ебем что там за структуры, типы и как устроены годы на уровне типов
Anton
я вроде описал абстракцию полностью
Anton
хмм
Alexander
и теперь все его "честно прочитают" и опять забьют хуй
ну так никто тебе и не обязан задачки решать)
Anton
есть 3 стула: struct Style { apperance_styles: ThemeStyle, layout_styles: LayoutStyle, } struct Node { context: Option<Box<Style>> } impl Node { fn apply_yoga_style(&self, style) } node.get_context()?.set_tag("tag_name"); // Вот тут проблема ибо после аплая нового тега у меня меняется оба стиля ключевые, а доступа к ноде поверх контекста нет.
Anton
И вот тут 3 стула, описаные выше. или делать метод для node с пробросом в контекст, или делать обвязку для ноды, или вставлять ссылку на ноду в style
Anton
ну так никто тебе и не обязан задачки решать)
это не задачка а дилема выборы подхода архитектурно
Маjко
это не задачка а дилема выборы подхода архитектурно
Я бы заменил Style на trait и реализовал 2 варианта: для йоги с ее структурой, чтобы не мешать ей работать, когда ты свои стили не пихаешь И второй -- свои стили, совместимые с Style Например трейтом StyleExt, к которому можно будет сдаункастить
Маjко
Style остается в йоге, StyleExt у тебя
Маjко
Это можно будет и как PR оформить, если объяснишь почему это важно для юзеров йоги в лице тебя
Маjко
А вообще ты пробовал свой вопрос кому-нибудь из авторов йоги задать? Мб подскажут решение
Anton
А вообще ты пробовал свой вопрос кому-нибудь из авторов йоги задать? Мб подскажут решение
таких контактов у меня нет, а в гитхаб ишьюс или все мертвы или только на вопросы по верхнему уровню отвечают
Anton
вопрос про референсы к сям игрорируют уже полгода например
Anton
ведь можно имплементить трейты для структур из кретов
Anton
только стандартные вроде имплементить нельзя же
Anton
так?
Anton
Но очень маленькая и инфы нужной мало(
Там в комменатх https://github.com/RoyJacobs/weld
Anton
смотрел?
Anton
[dependencies.webrender] git = "https://github.com/servo/webrender" [dependencies.yoga] git = "https://github.com/bschwind/yoga-rs"
Anton
неа щас гляну
Anton
тож на вебрендере и йоге
Anton
Я сначала подумал ты рекламируешь =)
Anton
не точно не я
Anton
вообще у чувачка там голяк как я смотрю в основном
Anton
но интересные способы для работы с application context
Anton
и эвенты на стримах
Anton
ебать
Anton
так
Anton
идея с дженерик трейтом была топ идеей
Anton
щас посмотрел, реально хорошо вписывается, ибо у трейта T - это тип контекста, а в Ноде T это контекст сам. Все в целом красиво вырисовывается
Anton
без костылей
Маjко
так?
Так
Anton
вот это я понимаю, хороший нужный совет
Anton
спасибо
Маjко
Стоило только дать сниппет и нормально описать
Anton
Стоило только дать сниппет и нормально описать
я на будущее запомню, если будут вопросы постараюсь сразу хоть с каким нибудь куском кода кидать
Cat
В расте при каждом чище вызывается метод unwrap, этот метод юзается везде где ввод/вывод идет или в чем его смысл?
wrpped_value.unwrap() в расте это примерно следующее: match wrapped_value { Ok(smth) => smth, Err => { panic!() } } если тебя устраивает такое поведение, то пользуй unwrap(). Если нет, то делай match либо какую-нибудь другую похожую по смыслу конструкцию
Маjко
Или юзай другие комбинаторы
Cat
в расте принято кетчить это или тут философия что упало, то не должно жить?
паники обычно не отлавливаются; ты должен делать match на Result<T> или Option<T>, если 100% хочешь избежать паники match или комбинаторы, как заметили выше
Макс
в расте принято кетчить это или тут философия что упало, то не должно жить?
Нормальная обработка ошибок это возвращать из метода Result или Option, и при каждом вызове чего-то внутри использовать оператор "?" https://doc.rust-lang.org/book/second-edition/ch09-02-recoverable-errors-with-result.html#a-shortcut-for-propagating-errors-
Макс
Нормальная обработка ошибок это возвращать из метода Result или Option, и при каждом вызове чего-то внутри использовать оператор "?" https://doc.rust-lang.org/book/second-edition/ch09-02-recoverable-errors-with-result.html#a-shortcut-for-propagating-errors-
По моему опыту, работает примерно так же, как exception, просто у тебя вся иерархия вызовов построена на Result, и самый основной обработчик (например тот, который начинает обработку http-реквеста) уже ловит любую ошибку, возникшую где-то внутри и логирует её
Dårk
сущность вопроса в том что у меня есть узлы йоги, структура Node, в ней можно хранить контекст и использовать по идее чистую йоговскую ноду как рут компонент дерева. А стили и контексты хранить внутри. У меня есть структура Style которая хранит в себе стили относительно классов, их же там меняет и сетапит. Но проблема в том что я не знаю как бы оформить красиво работу относительно узла йоги, все таки лайаут стили и апперанс стили разные. Лайаут стили вычисляются перед рендером, апперанс стили уже используются непосредственно для отрисовки. И поэтому у меня получается проблема вот такая: Я не могу просто взять из контекста style контекст на внешнее хранение, потому что тогда я не буду иметь доступа к ноде, и таким образом чтобы поменятб и аплайнуть стили, мне нужно или: - добавить методы дополнительные для Node (по грязному собственно реально форком себе йоги, ибо иначе внутри Node свои левые методы не добавить). Или - сделать обвязвку поверх ноды еще одной структурой, но тогда уже чистого дерева без доп обвязок не получится и кучу методов придется или транспортить, или копировать - делать копию ссылки и вставлять ее в контекст, но тогда получается какая то рекурсия, тобишь есть нода, в которой есть контекст, в котором есть нода, в которой есть контекст. Да и разыменование в таком случае по моему вызовет сегфолт.
знаешь, возможно стоит формулировать такие влпросы на algliyskom. и дублировать на SO.