Можно ли разделить ящик на несколько файлов, не вводя модули для каждого файла?
Все примеры, которые я нашел, создают lib.rs
а затем внутри этого файла создать mod foo;
, mod bar;
для каждого файла foo.rs
, bar.rs
и так далее.
По сути, я хочу разделить свой ящик на несколько файлов, но не нужно вводить множество модулей для каждого файла. Разве это не возможно с Rust?
1 ответ
Чтобы включить другой исходный файл, он должен быть его собственным модулем.
Однако это не означает, что вы должны раскрыть этот факт в своем API. Например, допустим, вы хотите поместить некоторый код в файл с именем hidden.rs
:
pub fn inside_hidden() {}
Теперь в вашем lib.rs
файл, вы можете выставить этот модуль:
#![crate_type = "lib"]
pub mod hidden;
Но если вашей библиотеке не требуются субмодули, вероятно, лучше сохранить hidden
модуль секрет, и вместо этого выставить его содержимое как члены вашего модуля верхнего уровня:
#![crate_type = "lib"]
pub use hidden::inside_hidden;
mod hidden;
Таким образом, пользователи не будут знать, что у вас есть hidden
суб-модуль. Они увидят inside_hidden
как если бы он был членом вашего модуля верхнего уровня.