Size: a a a

2020 April 27

G

Gymmasssorla in rust_offtopic
Мне модули в Rust мозг сильнее поломали, чем лайфтаймы
источник

DS

Doge Shibu in rust_offtopic
Gymmasssorla
Мне модули в Rust мозг сильнее поломали, чем лайфтаймы
А что в них такого?
источник

DS

Doge Shibu in rust_offtopic
Модули как модули
источник

G

Gymmasssorla in rust_offtopic
Doge Shibu
А что в них такого?
Непривычно после Джавы/C#
источник

DS

Doge Shibu in rust_offtopic
Gymmasssorla
Непривычно после Джавы/C#
Это да, видимость сильно по другому работает, если речь про это
источник

SP

Stanislav Popov in rust_offtopic
Doge Shibu
Модули как модули
в книжке показывают высосаные из пальца примеры с явными оборачиваниями всего mod {}, кучами подпапок

очевидно что в жизни никто в mod ничего не оборачивает но как в жизни все работает - хз
источник

DS

Doge Shibu in rust_offtopic
Stanislav Popov
в книжке показывают высосаные из пальца примеры с явными оборачиваниями всего mod {}, кучами подпапок

очевидно что в жизни никто в mod ничего не оборачивает но как в жизни все работает - хз
Куча подпапок - это нормально же
источник

DS

Doge Shibu in rust_offtopic
Локальные mod для тестов часто используются же
источник

SP

Stanislav Popov in rust_offtopic
мне надо разбить один сраный файлик на три чтобы меньше скролить
источник

SP

Stanislav Popov in rust_offtopic
линейно, в src
источник

SP

Stanislav Popov in rust_offtopic
и растбук мне такая, ой нет, давай я лучше расскажу тебе самый хардкорный кейс
источник

G

Gymmasssorla in rust_offtopic
Stanislav Popov
и растбук мне такая, ой нет, давай я лучше расскажу тебе самый хардкорный кейс
Жиза
источник

SP

Stanislav Popov in rust_offtopic
короче я не могу просто разбить main.rs на два файлика?
источник

DS

Doge Shibu in rust_offtopic
Stanislav Popov
мне надо разбить один сраный файлик на три чтобы меньше скролить
А какая проблема?

Объявляешь mod my_mod_1; mod my_mod2;

Создаешь файлы в той же папке: my_mod_1.rs и т.д.

Нужны подпапки? Создаешь в главном файле mod with_subfolder; папку with_subfolder, в ней mod.rs в ней код и описание её подмодулей
источник

G

Gymmasssorla in rust_offtopic
Stanislav Popov
короче я не могу просто разбить main.rs на два файлика?
вообще в main.rs прописываешь имена файлов без расширений, режащих в той же директории. Например:

main.rs
p.rs
g.rs


В main.rs:

mod p;
mod g;


Дальше используй их:

p:abc();
g::def();


если хочешь чтобы p и g были более сложными модулями, то есть содержащими другими модули, то

main.rs
p
   a.rs
   b.rs
   mod.rs


в p/mod.rs прописывай pub mod a; pub mod b;, а в main.rs - p::a::something() и т.д.
источник

SP

Stanislav Popov in rust_offtopic
так окей для простоты что есть у меня
main, downloader, state

в мейн делаю
mod downloader; - все хорошо
в downloader.rs делаю mod state;

ловлю такой треш

file not found for module state
to create the module state, create file "src/downloader/state.rs"
источник

DS

Doge Shibu in rust_offtopic
Stanislav Popov
так окей для простоты что есть у меня
main, downloader, state

в мейн делаю
mod downloader; - все хорошо
в downloader.rs делаю mod state;

ловлю такой треш

file not found for module state
to create the module state, create file "src/downloader/state.rs"
Потому что если ты хочешь подпапку downloader, то тебе надо сделать папку downloader, в ней mod.rs, в нем mod state, и в этой же папке создать state.rs
источник

G

Gymmasssorla in rust_offtopic
Stanislav Popov
так окей для простоты что есть у меня
main, downloader, state

в мейн делаю
mod downloader; - все хорошо
в downloader.rs делаю mod state;

ловлю такой треш

file not found for module state
to create the module state, create file "src/downloader/state.rs"
потому что у тебя структура другая.
main.rs
downloader.rs
state.rs


это всё модули. mod  state; в довнлодере не работает, потому что state это не подмодуль downloader
источник

SP

Stanislav Popov in rust_offtopic
я вообще сначала думал что обьявление  mod state; значит обернуть все что в этом файле в модуль
источник

DS

Doge Shibu in rust_offtopic
Если ты не хочешь, чтобы state был подмодулем downloader, то тебе надо его в main.rs обьявить
источник