Berkus
опшен бывает или Some(value) или None
NermaN 𓅂
а где Some()?
тут вообще в чем-то другом проблема
պլհկ
проблема вероятно в том что у кложуру неназываемый тип
NermaN 𓅂
я пытался просто обьявить еще так let mut job = || {}
NermaN 𓅂
а потом заменить это замккание на другое
NermaN 𓅂
но такое провернуть тоже не дает
պլհկ
добавь Box
պլհկ
пока мы не увидим кусок побольше, сложно угадывать
NermaN 𓅂
добавь Box
https://pastebin.com/6Vfqyq3D
NermaN 𓅂
строка 57
NermaN 𓅂
error[E0308]: mismatched types --> src/main.rs:57:32 | 57 | job = Box::new(|gp| stop(&gp)); | ^^^^^^^^^^^^^^ expected closure, found a different closure | = note: expected type [closure@src/main.rs:53:36: 53:40] found type [closure@src/main.rs:57:32: 57:46] = note: no two closures, even if identical, have the same type = help: consider boxing your closure and/or using it as a trait object
Berkus
https://pastebin.com/6Vfqyq3D
ты ж в плейграунд сразу суй, на пейстбине ничего не запускается
Berkus
в плейграунде же нет crateов
некоторые есть, но тебе они и не нужны же
պլհկ
нужен минимальный пример
NermaN 𓅂
нужен минимальный пример
http://play.rust-lang.org/?gist=c82fe0b6ce282c200b816efc9d0cb4c7&version=stable&mode=debug
NermaN 𓅂
вот чего примерно я хочу
NermaN 𓅂
замыкание в зависимости от необходимости будет выполнятся сразу, либо внутри другой функции
Berkus
замыкание в зависимости от необходимости будет выполнятся сразу, либо внутри другой функции
http://play.rust-lang.org/?gist=db295d3e587b9b5c06cd6e5ea9a95cbb&version=stable&mode=debug так и чо не так?
պլհկ
http://play.rust-lang.org/?gist=c82fe0b6ce282c200b816efc9d0cb4c7&version=stable&mode=debug
http://play.rust-lang.org/?gist=c30d13e9bf6df675cbbeef8712223e6b&version=stable&mode=debug
NermaN 𓅂
ох, спасибо вам большое, ща попробую у себя так сделать
NermaN 𓅂
я просто неправильно использовал Box
Berkus
это тоже тип )
NermaN 𓅂
ну вот, теперь работает, даже снова можно ездить роботом по дому, но теперь на расте
Berkus
йеее
NermaN 𓅂
возможно даже чуть отзывчивей управление получилось
NermaN 𓅂
попробую теперь осознать почему Box спасает
պլհկ
Потому что Fn это трейт, Box<Trait> - dynamic dispatch
պլհկ
@mersinvald вот зачем нужен dyn)
Kerrigan
сорь, у макоси опять фокус летает
Маjко
Мы утром выяснили что и impl Trait in an argument position нужен Таким же образом
NermaN 𓅂
Потому что Fn это трейт, Box<Trait> - dynamic dispatch
я теперь пытаюсь подобрать заголов для функции чтобы пропихнуть внутрь нее замыкание внутри Box
պլհկ
ты знаешь что делать (play.rust-lang.org)
NermaN 𓅂
ты знаешь что делать (play.rust-lang.org)
я кажется сам справился
NermaN 𓅂
все таки чето начинает получатся
NermaN 𓅂
Finished release [optimized] target(s) in 29m 54.17s
Berkus
о, ща на своей посмотрю
Berkus
Berkus
с -j 2 справилось без троттлинга и довольно быстро
Αλεχ
helloworld за час?
Αλεχ
да, довольно быстро
Berkus
ну это актиксовый хелловорлд
Berkus
helloworld за час?
весь актикс с депсами за час
Αλεχ
только хелло
Berkus
ну минут за 5 справится
NermaN 𓅂
helloworld за час?
Это не совсем хелло ворлд что же вы
NermaN 𓅂
Я уже много чего вписал туда
Αλεχ
может по сравнению с плюсами это быстро
Αλεχ
но после раст\C# компилятора который собирает за 10-20 секунд солюшен из 30 проектов это блин долго
NermaN 𓅂
ЧАС КАРЛ
Вообще это полчаса сборка всех зависимостей
NermaN 𓅂
В релизом режиме
NermaN 𓅂
В дебаге в два раза быстрее :)
Αλεχ
шта
ну раст подольше да
Αλεχ
на распбери?
да даже на нем часа бы не было
Денис
и так-то гцц побыстрее растс будет на порядки )
Berkus
ну раст подольше да
так, ну покажи как у тебя C# собирает на малинке
Αλεχ
так, ну покажи как у тебя C# собирает на малинке
на малинке не пробовал, а на виртуалке с 1 ядром и 512мб памяти и то час не работал
Berkus
и так-то гцц побыстрее растс будет на порядки )
ну плюсцы должны быстрее собираться по идее, если в лимит памяти не упрутся. знаю я как заставить гцц сожрать 10-15Гб виртуальной памяти
Денис
блин, да, сталкивался, когда на генте сидел
Денис
тогда правда не 10-15 было, а 8, но не суть)
Αλεχ
ну плюсцы должны быстрее собираться по идее, если в лимит памяти не упрутся. знаю я как заставить гцц сожрать 10-15Гб виртуальной памяти
учитывая гениальную модульность плюсов и то, что каждый файл это отдельная единица трансляции сильно сомневаюсь, что они будут быстрее того же rustc
Berkus
ну берешь hex2c, скармливаешь ему бинарный файл 100-150 мегов, получившийся сишник может сожрать 20-30Гб рамы :)
Kerrigan
надо попробовать мюслебилдер
Kerrigan
как-то не очень он с этим выкачиванием зависимостей каждый раз
timothy
как-то не очень он с этим выкачиванием зависимостей каждый раз
так можно же кэшировать через “-v $$(pwd)/.cargo:/root/.cargo”
NermaN 𓅂
https://github.com/Nalorokk/robot/blob/master/src/main.rs
NermaN 𓅂
буду теперь пытаться сделать код читаемей
Berkus
cargo install cargo-format clippy
Berkus
я бы сделал еще let job: T = match cmd { ....
պլհկ
я б выкинул эту дрочь с кложами и сделал енум