Организация кода в Rust: модули вместо пространств имен

В Rust нет понятия пространств имен, как в некоторых других языках программирования. Вместо этого Rust организует код с помощью модулей, которые действуют как контейнеры для связанных элементов, таких как функции, структуры и свойства. Модули помогают организовать код и избежать конфликтов имен.

Чтобы определить модуль в Rust, вы используете ключевое слово mod, за которым следует имя модуля. Вот пример:

mod my_module {
    // Code for the module goes here
    // Functions, structs, traits, etc.
}

Вы также можете создавать вложенные модули для дальнейшей организации кода:

mod my_module {
    mod sub_module {
        // Code for the submodule goes here
    }
}

Чтобы использовать элементы из модуля, вы можете либо включить их в область действия с помощью ключевого слова use, либо получить к ним прямой доступ, используя путь к модулю. Вот примеры обоих подходов:

Использование ключевого слова use:

use my_module::some_function;
use my_module::some_struct::SomeStruct;

Доступ к элементам напрямую по пути к модулю:

my_module::some_function();
let my_struct = my_module::some_struct::SomeStruct::new();