Dove si devono inserire sorgenti, esempi, documentazione, unit test, test di integrazione, licenza, benchmark ecc.?Qual è la struttura di directory consigliata per un progetto Rust?
risposta
Cargo, il gestore ufficiale pacchetto per Rust, defines some conventions regarding the layout of a Rust crate:
. ├── Cargo.lock ├── Cargo.toml ├── benches │ └── large-input.rs ├── examples │ └── simple.rs ├── src │ ├── bin │ │ └── another_executable.rs │ ├── lib.rs │ └── main.rs └── tests └── some-integration-tests.rs
Cargo.toml
eCargo.lock
sono memorizzati nella root del vostro progetto.- Il codice sorgente va nella directory
src
.- Il file di libreria predefinito è
src/lib.rs
.- Il file eseguibile predefinito è
src/main.rs
.- Altri file eseguibili possono essere inseriti in
src/bin/*.rs
.- I test di integrazione vanno nella directory
tests
(i test delle unità vanno in ogni file che stanno testando).- I file eseguibili di esempio vanno nella directory
examples
.- I parametri di riferimento vanno nella directory
benches
.Queste sono spiegate in dettaglio nello manifest description.
Seguendo questo layout standard, sarete in grado di utilizzare i comandi di Cargo per creare, eseguire e testare facilmente il vostro progetto. Eseguire cargo new
per impostare un nuovo progetto di libreria o cargo new --bin
per impostare un nuovo progetto eseguibile.
Inoltre, la documentazione per le librerie viene spesso scritta nei commenti della documentazione (commenti che iniziano con ///
prima di qualsiasi elemento o //!
per documentare l'elemento principale). Inoltre, la licenza viene solitamente inserita nella radice.
I test di unità, come menzionato sopra, sono scritti nello stesso modulo delle funzioni che stanno testando. Di solito, sono messi in un modulo interno. Sembra che questo (questo è ciò che Cargo genera per una nuova libreria con cargo new
):
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
}
}
Grazie! Pensavo che ci sarebbe stato dell'altro, in qualche modo, ma hai coperto tutto quello che ho chiesto. – jolson