11.2 Crates
crate_type
속성은 컴파일러에게 crate이 바이너리인지 라이브러리인지 알려줄 때 사용될 수 있고(그리고 어떤 타입의 라이브러리인지), crate_name
속성은 crate의 이름을 설정할 때 사용될 수 있다.
// lib.rs
// 이 crate는 라이브러리.
#![crate_type = "lib"]
// 라이브러리 이름은 "rary".
#![crate_name = "rary"]
pub fn public_function() {
println!("called rary's `public_function()`");
}
fn private_function() {
println!("called rary's `private_function()`");
}
pub fn indirect_access() {
print!("called rary's `indirect_access()`, that\n> ");
private_function();
}
crate_type
속성이 사용될 때, 더 이상 --crate-type
플래그를 rustc
에 전달할 필요가 없다.
$ rustc lib.rs
$ ls lib*
library.rlib