Size: a a a

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

2020 February 03

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Alex Naraito
Ну, английский вроде как довольно логичный, следовательно переводить с него проще
Английский разный
источник

AN

Alex Naraito in RU Rust GameDev — русскоговорящее сообщество
Да, забыл про это
источник

AN

Alex Naraito in RU Rust GameDev — русскоговорящее сообщество
Но всё же
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Хехехе
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
snuk182: trollface.jpg
источник

I

Izirayd in RU Rust GameDev — русскоговорящее сообщество
лол раст имеет glm
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Lain-dono
Вот третье издание, если кому надо
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
https://fosdem.org/2020/schedule/event/rust_webgpu - запись свежайшего доклада Kvark'а про wgpu-rs!
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
SET001
добавил это в main.rs и заработало но я не понимаю логики, разве main.rs само по себе не является модулем? зачем явно обхявлять?
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
пхахахаха, вот это правда
источник

o

operator in RU Rust GameDev — русскоговорящее сообщество
snuk182: https://thndl.com/ws4k/ очень залипательная штука на Rust
источник

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
там нет про mod.rs
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
SET001
там нет про mod.rs
соседние главы в этом разделе
источник
2020 February 04

S

SET001 in RU Rust GameDev — русскоговорящее сообщество
ну я весь раздел прочитал несколько раз не видел там такого
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
SET001
ну я весь раздел прочитал несколько раз не видел там такого
Earlier, we mentioned that src/main.rs and src/lib.rs are called crate roots. The reason for their name is that the contents of either of these two files form a module named crate at the root of the crate’s module structure, known as the module tree.

The module tree might remind you of the filesystem’s directory tree on your computer; this is a very apt comparison! Just like directories in a filesystem, you use modules to organize your code. And just like files in a directory, we need a way to find our modules.

To show Rust where to find an item in a module tree, we use a path in the same way we use a path when navigating a filesystem. If we want to call a function, we need to know its path.

A path can take two forms:

   An absolute path starts from a crate root by using a crate name or a literal crate.
   A relative path starts from the current module and uses self, super, or an identifier in the current module.

For example, let’s start from the code in Listing 7-17 and move the front_of_house module to its own file src/front_of_house.rs by changing the crate root file so it contains the code shown in Listing 7-21. In this case, the crate root file is src/lib.rs, but this procedure also works with binary crates whose crate root file is src/main.rs.

Filename: src/lib.rs

mod front_of_house;

pub use crate::front_of_house::hosting;

pub fn eat_at_restaurant() {
   hosting::add_to_waitlist();
   hosting::add_to_waitlist();
   hosting::add_to_waitlist();
}

Listing 7-21: Declaring the front_of_house module whose body will be in src/front_of_house.rs

And src/front_of_house.rs gets the definitions from the body of the front_of_house module, as shown in Listing 7-22.

Filename: src/front_of_house.rs


pub mod hosting {
   pub fn add_to_waitlist() {}
}

Listing 7-22: Definitions inside the front_of_house module in src/front_of_house.rs

Using a semicolon after mod front_of_house rather than using a block tells Rust to load the contents of the module from another file with the same name as the module. To continue with our example and extract the hosting module to its own file as well, we change src/front_of_house.rs to contain only the declaration of the hosting module:

Filename: src/front_of_house.rs

pub mod hosting;

Then we create a src/front_of_house directory and a file src/front_of_house/hosting.rs to contain the definitions made in the hosting module:

Filename: src/front_of_house/hosting.rs

pub fn add_to_waitlist() {}

The module tree remains the same, and the function calls in eat_at_restaurant will work without any modification, even though the definitions live in different files. This technique lets you move modules to new files as they grow in size.

Note that the pub use crate::front_of_house::hosting statement in src/lib.rs also hasn’t changed, nor does use have any impact on what files are compiled as part of the crate. The mod keyword declares modules, and Rust looks in a file with the same name as the module for the code that goes into that module.


выделено конкретно про mod.rs только они называются front_of_house.rs и так далее
источник

AB

Artur Bodagovsky in RU Rust GameDev — русскоговорящее сообщество
там немного поверхностно про это написано
если коротко - то оператор mod делает тот файл, в котором ты его используешь, корнем дерева
в Расте используется древовидная структура зависимостей, в которой ветки не связаны друг с другом напрямую
они связаны через корень
таким образом, если ты в main.rs объявляешь mod *file_name* это значит здесь ты можешь использовать весь public функционал импортируемого модуля
поправьте, если я что-то неправильно говорю)
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
ну без use не можешь использовать, ты просто декларируешь что отсюда виден модуль *file_name*
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
а модуль может быть по конвенции либо в *file_name*.rs либо в *file_name*/mod.rs
источник