պլհկ
чо за не передать
Anton
ты хотел сказать
Kerrigan
> std::cell::Cell<std::collections::HashMap<std::string::String, bool»` cannot be shared between threads safely
պլհկ
это Cell не передать
Anton
Ты хочешь передать указательь на память между тредами? =)
Маjко
Например RWMutex
Маjко
Потом нужно что-то реализующее Send
Маjко
Например Arc
Маjко
Arc<RwMutex<HashMap<_,_>>>
պլհկ
он же на Send жалуется, а не Sync
Маjко
Оно точно на Send?
պլհկ
возможность передачи между тредами это ж Send
Маjко
https://stackoverflow.com/questions/40384274/rust-mpscsender-cannot-be-shared-between-threads
Маjко
Это про Sync таки
Kerrigan
я хочу сделать хешмап в стейте в актиксе
պլհկ
ну ок, если мутабл, то надо Sync, т.е. mutex, как сказали выше
Kerrigan
короче я тупо затолкал создание переменной внутрь замыкания
պլհկ
С М Е К А Л О Ч К А
Kerrigan
server::new(|| { let tokenmap = hashmap!( "abc".to_string() => true, "cde".to_string() => false, ); let state = AppState { tokens: tokenmap, }; App::with_state(state) .middleware(middleware::Logger::default()) .resource("/", |r| { r.method(http::Method::GET).with(index); r.method(http::Method::POST).with(upload); }) }).bind("127.0.0.1:8088") как-то так
Kerrigan
мне же не настоящий код писать
Kerrigan
//игрушечный, да
Anton
Сап два.. конфа, есть одна структура
Anton
Собственно хочу реализовать обработку выражений типа "&:<status>" в ключе
Anton
и потом их транспилить в структуру в ключи статусов
Anton
и у меня вопрос, как бы это красиво сделать, сейчас у меня все обрабатывается стандартными макросами сериализации/десериализации
Anton
и какбы нужен кейс имплементации Deserealize уровня "проверяем ключ по регэкспу - если совпадает - сделать это, если нет - использовать стандартный парсинг"
Anton
вроде бы я видел где то как такой кейс реализуется, но найти снова чот не получается. Возможно я в течении пары часов может что и найду - но если кто на вскидку помнит закиньте плез
Маjко
Не видел, но выглядит банально, если не надо в рантайме регексы задавать
Маjко
Херачишь статические регексы, херачишь свой Deserialize нужной структуры
Berkus
а там точно прямо регекспы нужны?
Маjко
Задай вопрос и тебе объяснят почему тебе это не нужно /суть расточата/
Anton
Херачишь статические регексы, херачишь свой Deserialize нужной структуры
не, так то я в принципе другие данные и сериализовал на самом деле, можешь в коде позырить, просто у меня есть большая структура Style в которой все вхождения с разными тегами и тд
Anton
мне нужно понять какой именно метод в deserealize автоматом пускает обработку как по стандарту и начинает сам матчить, а какие самому можно
Anton
оесть мне чтото типо миддлваря надо - мол до начала парсинга поля проверить не подходит ли оно мне
Anton
с другой стороны можно просто сделать обычное поле, и назчить из какого ключа ему брать значение, но тут другая проблема
Anton
"&:<status>" выражение имеет тот же тип что и структура
Anton
хотелось бы какой нибудь сэйф, чтобы в вложенной структуре этот статусный ключ бы был всегда None
Anton
иначе жопа какая то
Anton
с одной стороны пока что на это можно хуй забить, но потом все же надо защиту замутить какую нибудь
Anton
Anton
Тут все ноют?
Anton
Anton
А тоя тож могу поныть =)
Anton
Так и еще один вопрос, из темы с которой не работал
Anton
как сделать нормально мерж?
Anton
Положим у меня есть 2 инстанса структуры, я хочу их смержить, и получить новый инстанс мерженый
Anton
в идеале - чтобы для этого уже был макрос к структуре чтоб костылей не плодить
Cat
или я туплю, и так нельзя?
Anton
какие то странные условия, может там есть нюансы
Anton
у тебя option поля, и при мержет надо брать где !is_none ?
Anton
с заменой? c = a { .. b}
как я знаю это работает только если часть полей есть, а части нет
Anton
есть структура дефолтная, с основным стилем
Anton
есть структура под статус hover например
Anton
те стили что есть в дефолтном заменить из новой если есть
Anton
те стили которых нет надо добавить
Anton
аа
такой варик как у тебя работаает ток в js)
Anton
те стили которых нет надо добавить
вот с одной стороны можно макрос, с другой стороны все поля структуры можно получить только в процедурном
Anton
по идее ктото же должен был до того же дойти
Anton
макрос должен быть, но я найти не могу
Anton
из очевидных в лоб проверять поля
Anton
а самому писать конечно можно, я в процедурных макросах немножко прокачался
Anton
но писать велосипед не хочется
Anton
макрос должен быть, но я найти не могу
Ну ты усложнил - потому что у теб должна быть стиль не структура а хэшмап
Anton
структура
Anton
не хэшмап
Anton
там ньюансов дофига, и привязки к данным и сереализации, так что хэшмапы не варик совсем
Anton
ну возми тот же css - по суте можно описать struct StyleRule { selectors: Vec<String>, styles: HashMap<String, ...> }
Anton
я конечно не вкурсе как ты реализовал, но если у тебя стиль завязан на данные имхо какшка какая то
Anton
я конечно не вкурсе как ты реализовал, но если у тебя стиль завязан на данные имхо какшка какая то
мне нужно потом данные практично итерировать и сереализовать по типам
Anton
структура
Структура стандартная или трейт?
Anton
нельзя сделать хэшмапу чтоб все типы в ней учестьт
Anton
хэшмапа это один заданный тип ключа и один тип значения