Crates
El atributo crate_type
puede usarse para decirle al compilador si un crate es
un ejecutable o una biblioteca (e incluso qué tipo de biblioteca), y el
atributo crate_name
se puede usar para establecer el nombre del crate.
Sin embargo, es importante tener en cuenta que los atributos crate_type
y
crate_name
no tienen ningún efecto en absoluto cuando se usa Cargo, el
administrador de paquetes de Rust. Dado que Cargo se usa para la mayoría de los
proyectos de Rust, esto significa que los usos en el mundo real de crate_type
y crate_name
son relativamente limitados.
// Este crate es una biblioteca #![crate_type = "lib"] // La biblioteca se llama "rary" #![crate_name = "rary"] pub fn funcion_publica() { println!("`funcion_publica()` de rary llamada"); } fn funcion_privada() { println!("`funcion_privada()` de rary llamada"); } pub fn acceso_indirecto() { print!("`acceso_indirecto()` de rary llamado, \n> "); funcion_privada(); }
Cuando se usa el atributo crate_type
, ya no necesitamos pasar la bandera
--crate-type
a rustc
.
$ rustc lib.rs
$ ls lib*
library.rlib