lib.rs と main.rs の両方があると、Rust は自動的にlib.rs をライブラリとしてビルドする仕組みとなっている。
lib.rs
pub fn greet(name: &str) -> String { format!("Hello, {}!", name) }
main.rs
use app::greet; fn main() { let name = "Alice"; println!("{}", greet(name)); }
Compiling app v0.1.0 (/home/vagrant/dev/work/rust/app)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.45s
Running `target/debug/app`
Hello, Alice!
なるほど、lib.rs はRust関連の書籍を見るとよく出てきますが、ようやく意味がわかりました。