¿Cómo entender mejor Crate en Rust?
En este libro , Rust By Example , Capítulo 11:
Una caja es una unidad de compilación en Rust. Cada vez que se llama a rustc some_file.rs, some_file.rs se trata como el archivo de caja .
De acuerdo con este libro, ¿qué pasa con el archivo fuente?
La referencia de óxido | Cajas y archivos fuente
El modelo de compilación se centra en artefactos llamados cajas. Cada compilación procesa una sola caja en forma de fuente y, si tiene éxito, produce una sola caja en forma binaria: ya sea un ejecutable o algún tipo de biblioteca.
El compilador de Rust siempre se invoca con un solo archivo fuente como entrada y siempre produce una sola caja de salida. El procesamiento de ese archivo fuente puede resultar en que otros archivos fuente se carguen como módulos. Los archivos de origen tienen la extensión .rs.
De acuerdo con esta declaración, pienso:
Archivo de origen (archivo .rs) --> caja correspondiente
Al igual que: .java --> .class
Ahora no puedo entender este problema; Estoy todo en el mar.
Respuestas
Esta es la parte clave del material que has citado:
El procesamiento de ese archivo fuente puede resultar en que otros archivos fuente se carguen como módulos.
Si examina una biblioteca típica, encontrará un archivo llamado src/lib.rs
que contiene varias líneas como mod foo;
. Cada uno de ellos identifica otro archivo src/foo.rs
que el compilador interpretará como otro módulo que forma parte de la caja (o puede contener el módulo directamente, en el mismo archivo).
No es que un archivo fuente constituya una caja: es que, a partir de ese archivo fuente, puede encontrar todos los archivos que componen la caja, a diferencia de otros modelos de compilación en los que el compilador puede recibir muchos nombres de archivo para comenzar. .