rust: разбить один файл на отдельные модули
Когда все три файла: tcp.rs
, lib_04.rs
и lib_05.rs
в одной папке, где первый содержит fn main()
, а остальные два - как модули, т.е. разбил большой файл на три, то так работает:
> rustc tcp.rs --out-dir pdb_exe; .\pdb_exe\tcp.exe
[ - - - - - - - - -
x = 5, y = 5
s1 = sss, s2 = sss
t = 88
- - - - - - - - - ]
Если хочу эти два файла: lib_04.rs
и lib_05.rs
поместить в свою папку, например, lib
, то не могу правильно прописать к ним путь, чтобы работало. Получилось, только, если
внутри такой папки поместить один файл с именем mod.rs
и обозначить один mod lib;
в tcp.rs
.
Файлы:
// tcp.rs
mod lib_04;
mod lib_05;
fn main() {
println!("[ - - - - - - - - -");
let x = 5;
let y = x;
println!("x = {}, y = {}", x, y);
lib_04::test();
lib_05::t05();
println!("- - - - - - - - - ]");
}
// lib_04.rs
pub fn test() {
let s1 = String::from("sss");
let s2 = s1.clone();
println!("s1 = {}, s2 = {}", s1, s2);
}
// lib_05.rs
pub fn t05() {
let t = 88;
println!("t = {}", t);
}
Как правильно разбить большой файл на блоки файлов и поместить их в отдельную папку?
Источник: Stack Overflow на русском