Introducción
En este laboratorio, se explica que los atributos crate_type y crate_name en Rust no tienen efecto al utilizar Cargo, el administrador de paquetes de Rust, que se utiliza ampliamente para proyectos de Rust.
Nota: Si el laboratorio no especifica un nombre de archivo, puede utilizar cualquier nombre de archivo que desee. Por ejemplo, puede utilizar
main.rs, compilar y ejecutarlo conrustc main.rs &&./main.
Cajas (Crates)
El atributo crate_type se puede utilizar para decirle al compilador si una caja es binaria o una biblioteca (e incluso qué tipo de biblioteca), y el atributo crate_name se puede utilizar para establecer el nombre de la caja.
Sin embargo, es importante tener en cuenta que ambos atributos crate_type y crate_name no tienen ningún efecto cuando se utiliza Cargo, el administrador de paquetes de Rust. Dado que Cargo se utiliza en la mayoría de los proyectos de Rust, esto significa que los usos reales de crate_type y crate_name son relativamente limitados.
// Esta caja es una biblioteca
#![crate_type = "lib"]
// La biblioteca se llama "rary"
#![crate_name = "rary"]
pub fn public_function() {
println!("llamada a `public_function()` de rary");
}
fn private_function() {
println!("llamada a `private_function()` de rary");
}
pub fn indirect_access() {
print!("llamada a `indirect_access()` de rary, que\n> ");
private_function();
}
Cuando se utiliza el atributo crate_type, ya no es necesario pasar la bandera --crate-type a rustc.
$ rustc lib.rs
$ ls lib*
library.rlib
Resumen
¡Felicitaciones! Has completado el laboratorio de Cajas (Crates). Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.