Маjко
Маjко
Денис
ну в принципе, можно в тесты включить ассерт на это дело
Ivan
https://github.com/rust-lang/rfcs/pull/954
Cat
пишу значит итераторы поверх итераторов, и вроде всё нормально, но никак не могу понять, как правильно прописать лайфтаймы, чтобы не borrow'ить строковое значение при десериализации (т.к. в конечном итоге эта строка мне не нужна)
подскажите, куда копать?
стр. 50:
https://play.rust-lang.org/?gist=5ba44a5f67597e435ad9b87e1decc663&version=nightly&mode=debug&edition=2015
(изначально хотел привести пример на serde_json::from_str::<T>(...), но там такой проблемы не возникло)
Cuno
Cat
123
В ночном расте есть возможность имплементировать каждый из вариантов перечисления?
Антон
123
enum ExampleEnum { Variant1{member1: i32, member2: Option<String>} }, делаешь impl fmt::Display for ExampleEnum::Variant1 {...}
123
Есть вероятность продвинуть: https://github.com/rust-lang/rfcs/pull/1450
Cat
звучит как что-то ненужное;
RFC разве об этом?
Антон
Эм, ваще-то они и так есть
123
В таком случае, если я хочу выделить в коде набор структур для наглядности, лучше делать в моем случае это через модуль?
Cat
в каком смысле "выделить"?
Антон
https://blog.rust-lang.org/2017/07/20/Rust-1.19.html
Антон
Пость issue
Vladislav
Не подскажете, где в проекте писать путь по которому линкер будет искать .lib файлы? под виндой
Cuno
на плейграунде воспроизводится?
Valery
Vladislav ты mingw собираешь?
Vladislav
Valery
https://github.com/dpogretskiy/specs-ggez-showcase/blob/master/build.rs
Valery
у меня вот такой build.rs для sdl
Valery
но там длл и это visual studio
Valery
всмысле таргет msvc
Vladislav
всмысле таргет msvc
ну у меня тоже визуалка. папку с .lib файллами в path виндовый прописал, а линкер их так и не подцепляет
Valery
их надо в проект засунуть
Valery
Vladislav ссылку мою посмотри, с build.rs
Valery
там аргумент надо указать, где либы искать
Valery
только я не знаю кому
Valery
cargo или rustc
Valery
https://github.com/dpogretskiy/specs-ggez-showcase/blob/master/build.rs
Vladislav
в плюсах там все элементарно прописывается\
Valery
ну этот я нашел где то в недрах stackoverflow
Valery
даненько уже
Valery
println!("cargo:rustc-link-search=all={}", lib_dir.display());
Valery
вот что эта строчка в build.rs может вообще значить, все собирается
Vladislav
как заставить гребанный линкер сходить за библиотекой? или куда ему ее подложить? где-нибудь вообще написано про пути, по которым ходит компилятор и линковщик?
note: LINK : fatal error LNK1181: cannot open input file 'OpenCL.lib'
Vladislav
в VS проблема решается в три клика блин, а с растом ебли на несколько часов
Alex
Alex
поэтому там даже быстрее
Vladislav
вот крейт, которые требует opencl.lib для использования
https://github.com/cogciprocate/ocl/
Vladislav
только примеры не компиляются - линкер не может найти этот opencl.lib
Alex
а, ты на винде да?
Alex
в линупсе просто пакет ставишь, оно ставится там где по умолчанию путь ищется
Alex
поэтому все эти крейты без проблем поидее собираются
Vladislav
есть такое, да
Vladislav
но сейчас надо под винду. я и в path прописал папку, где либы живут. но линкер ослеп. и как его заставить заглянуть куда надо - хз
Vladislav
https://github.com/Cldfire/nvml-wrapper
Vladislav
здесь вообще build.rs нет
Chebyrash
Berkus
Berkus
Berkus
либы надо линкеру прописывать, в PATH ищутся только dll-ки по-моему
Латентный Бурят
Berkus
*.exe ещё.
это не библиотека, мы тут про библиотеки
Латентный Бурят
Berkus
а я про линковку
Латентный Бурят
Бывает.
Антон
Народ, у меня вопрос — как правильно написать сигнатуру функции, которая принимает и IntoIterator<Item = T>, и IntoIterator<Item = &T>?
պլհկ
Через Borrow
Денис
не успел)
Антон
Пробовал уже, не канает
պլհկ
Item = B, where B: Borrow<T>
պլհկ
Че не канает?
Антон
Че не канает?
expected signature of `fn(B) -> _`
found signature of `for<'r> fn(&'r _) -> _`
Антон
Это на map(Borrow::borrow) указывает
Антон
error[E0631]: type mismatch in function arguments
--> src/main.rs:85:67
|
85 | for (i, &(from_idx, to_idx, float)) in crossroads.into_iter().map(Borrow::borrow).enumerate() {
| ^^^
| |
| expected signature of `fn(B) -> _`
| found signature of `for<'r> fn(&'r _) -> _`
Денис
ну там ещё проблема такая, что fn borrow(&self) -> &Borrowed, то есть ссылка один фиг дропнется после выхода из map()
պլհկ
Боррои перед вызовом
Денис
Денис
угу
Денис
внутри тела for надо борровить
Денис
а так, в общем случае, наверное нельзя поглотить X и вернуть &X
Денис
поэтому и замапать не получится
Денис
Денис
типа
Денис
https://play.rust-lang.org/?gist=25d67ecf1b2e2ada9ea0ab126e5eabba&version=nightly&mode=debug&edition=2015