Vladimir
у тебя тут сразу две хуйни.
Vladimir
process не будет так работать, потому что ты хочешь в одной из веток сразу два раза использовать вектор
Vladimir
один раз бороуить мутабельно, второй раз иммутабельно
Сережа
через unsafe будет
Сережа
кампилируется же!
Vladimir
2, у тебя не полная сигнатура вот оно не может вывести лайфтайм, правильно будет fn get_processor<'a> (req: &'a [u8]) -> Box<Fn(&mut Vec<u8>) + 'a> {
Сережа
я и спрашиваю есть какая-то магия сказать кампилятору, что у cb - время жизни process, не зависящее от аргумента get_processor
Vladimir
наоборот
Vladimir
оно зависит от аргумента
Сережа
не зависит, в cb я же его (аргумент) не использую (пока и вообще не планирую)
Сережа
я на основании аргумента создаю калбек и его возвращаю, калбек про аргумент ничего не знает
Vladimir
Box::new(move |acc| cb_type2(req[OFFSET_PODTIP], acc)) req
Vladimir
это что по твоему?
Vladimir
не аргумент get_processor????
Сережа
это по моему должно склонироваться, т.к. там мув
Vladimir
еще раз
Сережа
т.е. я создал замыкание, при создании замыкания мне нужен req, при вызове замыкания - нет
Vladimir
еще раз, у тебя есть забороуленный req
Vladimir
если замыкание зависит от него
Vladimir
то его вж зависит от вж req
Сережа
да я понял, его не отпустит, пока есть замыкание
Сережа
но фактически то он мне не нужен после того, как замыкание создано
Vladimir
если оно тебе не нужно, то ты так и запихни в него то что тебе из этого слайса нужно
Сережа
давай поступим проще, если ты можешь это говно переписать без unsafe меняя только тот блок где unsafe - перепиши пожалуйста
Vladimir
http://play.integer32.com/?gist=eafcad71ca22b63c902244342a2ef826&version=stable
Vladimir
кстати статик тут на самом деле не нужен
Vladimir
явный*
Vladimir
просто удалил ансейф, а у него код и так работал?)
Filipp
это уже детали
Сережа
да, лол
Filipp
в балладах такое не пишут
Vladimir
чет шрамко сразу вспомнил
Vladimir
с его Rc<UnsafeCell>>
Vladimir
Oleg
вопрос был в том как компилятор побороть без unsafe
Понимаю, что неактуально, но вот, что я имел в виду https://gist.github.com/Odomontois/d6a64a2cb6b4aa02c0591044e850d24c
Oleg
https://play.rust-lang.org/ отказывается шарить, в консоли говорит, что с моего апишника превышен лимит по обращениям к gist API
Oleg
За моё небольшое знакомство мне показалось, что лучше с компилятором не бороться. Чем раньше осознаешь, что твоя затея - говно, тем меньше проблем в дальнейшем
Сережа
спасибо
Сережа
там клонирования не было из-за того что req ссылка, и операция индексирования проводилась во время вызова замыкания
Сережа
хотя я не уверен
Сережа
т.е. я хочу сказать что move перемещал сам req в замыкание, а уже при вызове замыкания разрешалось req[OFFSET_PODTIP]
Сережа
а я искрене считал, что req[OFFSET_PODTIP] будет как u8 и просто склонируется
Маjко
Сделаешь move || -- скопируется
Сережа
http://play.integer32.com/?gist=146c864ca7c1ba5f15d82a4cb8306eb4&version=stable ???
Vladimir
Мув мувит переменные
Vladimir
Не разворачивает твои выражения
Маjко
+
Маjко
Получай значение вне замыкания
Маjко
И передавай
Сережа
это как-то противоречит тому, что я написал выше?
Маjко
Ты очень путанно излагаешь
Сережа
вот в си++ нормально зделали
Сережа
https://ideone.com/u5Sgff
Vladimir
Да, в с++ можно итератор инвалидировать в цикле
Vladimir
Тоже нормально
stalkerg
а кто нить пробовал opecv на раст переписывать?
Vladimir
Опенкв ж только компилит шейдеры, не?
stalkerg
Опенкв ж только компилит шейдеры, не?
не, ты что там много другого добра
Vladimir
Ну Лан тогда
Vladimir
Вроде никто не переписывал
Sergey
зачем переписывать?
Sergey
че биндинги не проложить?
Vladimir
(+
Vladimir
++
Vladimir
Это растофанаты юные хотят всё переписать
Vladimir
На этот игрушечный язык
Sergey
почему игрушечный?
Vladimir
Всмысле почему
Vladimir
На нём же никто не пишет
Sergey
пишет же
Vladimir
@LooMaclin расскажи админу, он чёт не шарит
Sergey
даже в рашке я лично сталкивался с несколькими компаниями
Sergey
которые на расте пишут
Vladimir
Та мем такой, чё ты всерьез вообще
Safort
Та мем такой, чё ты всерьез вообще
Сова, походу, давненько тут не бывал)
Sergey
иногда спам чищу
Sergey
но так да
stalkerg
что за мем? у меня болезнь - отсутствие мемов в крови.