Обычно модули определяются в отдельных файлах. Рассмотрим, как определить модуль во внешнем файле и подключить его.
Сначала определим новый файл lifetime.rs со следующим кодом:
pub mod messages{ pub mod message_functions{ pub fn hello(){ println! ("Hello"); } pub fn bye(){ println! ("Good bye"); } } }
Файл lifetime.rs фактически определяет одноименный модуль - lifetime, который содержит модуль "messages",
а тот - вложенный модуль "message_functions". В последнем определены две функции - hello()
и bye()
Теперь наша задача заключается в том, чтобы подключить этот файл в основной файл программы.
Для подключения внешнего файла применяется оператор mod, после которого указывается имя файла (без расширения .rs
):
mod внешний_файл;
Пусть главный файл программы располагается в одной папке с модулем lifetime.rs. Тогда подключение и использование функций из этого модуля будет выглядеть следующим образом:
mod lifetime; use lifetime::messages::message_functions::{hello, bye}; fn main(){ hello(); bye(); }
Сначала указываем, какой внешний файл-модуль будет подключаться:
mod lifetime;
Далее подключаем функции hello и bye из модуля:
use lifetime::messages::message_functions::{hello, bye};
Причем в пути к функциям первым модулем указывается название файла, то есть lifetime
, а потом уже те модули, которые определены в файле lifetime.rs.