Size: a a a

Rust — русскоговорящее сообществo

2020 September 27

Э

Эрик in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
А если ещё я смогу сделать Ctrl + Click (Go to definition) на вызов метода и IDE откроет мне сгенерированный макросом код для этого метода - это будет просто идеально.
Ну, в виме можно было бы зафигачить в команду cargo expand $code_path | rg $under_cursor, а вот в твоей IDE не знаю.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Хотя это тоже не то. Надо cargo expand сохранять в файл и там уже как-то выворачиваться с go to дефинишн.
источник

Z

Zymlex (Юрий) in Rust — русскоговорящее сообществo
Возможно ли через cargo подключить к проекту исходник из другого проекта, находящиеся в одном решении? Или лучше сразу символическую ссылку на файл?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Вообще, есть
#[path = "a/b/c.rs"]
mod foo;
но скорее всего ты делаешь что-то не так
источник

Э

Эрик in Rust — русскоговорящее сообществo
Zymlex (Юрий)
Возможно ли через cargo подключить к проекту исходник из другого проекта, находящиеся в одном решении? Или лучше сразу символическую ссылку на файл?
"src/qwe.rs"

include!("/path/to/real/qwe.rs")
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Mikail Bagishov
Вообще, есть
#[path = "a/b/c.rs"]
mod foo;
но скорее всего ты делаешь что-то не так
раз уж у тебя уже воркспейс, то почему бы не выделить этот файл в отдельный крейт-библиотеку?
источник

Z

Zymlex (Юрий) in Rust — русскоговорящее сообществo
Mikail Bagishov
раз уж у тебя уже воркспейс, то почему бы не выделить этот файл в отдельный крейт-библиотеку?
Слишком жирно для небольшого файла, проще его в корень пока закинуть.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Что значит "жирно"? Cargo.toml для этого крейта слишком много места займет?
источник

Z

Zymlex (Юрий) in Rust — русскоговорящее сообществo
Mikail Bagishov
Что значит "жирно"? Cargo.toml для этого крейта слишком много места займет?
В принципе можно.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Zymlex (Юрий)
В принципе можно.
ладно_не_буду_использовать_антипаттерны.jpg
источник

Z

Zymlex (Юрий) in Rust — русскоговорящее сообществo
Эрик
ладно_не_буду_использовать_антипаттерны.jpg
В .net проектах можно было просто ссылку на файл сделать, а тут ещё один проект приходится создавать)
источник

Э

Эрик in Rust — русскоговорящее сообществo
В расте тоже можно, я тебе даже полный код скинул.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Только это антипаттерн.
источник

Z

Zymlex (Юрий) in Rust — русскоговорящее сообществo
Эрик
В расте тоже можно, я тебе даже полный код скинул.
Кстати, как он работает, не тупой копипастой?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Тупой копипастой.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Чтобы была не тупая копипаста, надо выделить в либу.
источник

D

Denis in Rust — русскоговорящее сообществo
про коэрсии (хз как по-русски правильно), может чё-то ещё в номиконе забыли? если вспомните что, напишите плз в https://github.com/rust-lang/nomicon/issues/237
источник

IB

Ivan Boldyrev in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
Декларативные макросы уже раскрываются (с ограничением по глубине вложенности). А вот с процедурными в IDE пока видимо сложновато. Это ведь обычный код, который несколько опасно запускать в IDE.
А в компиляторе опасно или безопасно?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Ы
Синтаксис уже заметно лучше, чем был, но, имхо, можно ещё тыкать
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
let (mut i32_stream, mut f64_stream, mut str_stream) =
   demux!(MyEnum { A, B, C })(panicking())(stream.boxed());

Например, унести demux!() в дерайв
источник