Como entender melhor o Crate in Rust?
Neste livro- Rust By Example , Capítulo 11:
Uma caixa é uma unidade de compilação em Rust. Sempre que some_file.rs é chamado, some_file.rs é tratado como o arquivo crate .
De acordo com este livro, e quanto ao arquivo de origem?
A referência de ferrugem | Caixas e arquivos de origem
O modelo de compilação centra-se em artefatos chamados caixas. Cada compilação processa uma única caixa na forma de origem e, se for bem-sucedida, produz uma única caixa na forma binária: um executável ou algum tipo de biblioteca.
O compilador Rust é sempre invocado com um único arquivo de origem como entrada e sempre produz uma única caixa de saída. O processamento desse arquivo de origem pode resultar no carregamento de outros arquivos de origem como módulos. Os arquivos de origem têm a extensão .rs.
De acordo com esta declaração, eu penso:
Arquivo de origem (arquivo .rs) --> caixa correspondente
Assim como: .java --> .class
Agora não consigo entender esse problema; Eu estou no mar.
Respostas
Esta é a parte fundamental do material que você citou:
O processamento desse arquivo de origem pode resultar no carregamento de outros arquivos de origem como módulos.
Se você examinar uma biblioteca típica, encontrará um arquivo chamado src/lib.rsque contém várias linhas como mod foo;. Cada um deles identifica outro arquivo src/foo.rsque o compilador interpretará como outro módulo que faz parte do engradado (ou pode conter o módulo diretamente, no mesmo arquivo).
Não é que um arquivo de origem compõe uma caixa: é que, a partir desse arquivo de origem, você pode encontrar todos os arquivos que compõem a caixa, ao contrário de outros modelos de compilação em que o compilador pode receber muitos nomes de arquivo para começar .