0.0.2-alpha.4
This commit is contained in:
37
docs/templates/004-RUST_LIBRARY_CRATE.md
vendored
Normal file
37
docs/templates/004-RUST_LIBRARY_CRATE.md
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<!-- file: docs/templates/004-RUST_LIBRARY_CRATE.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Pattern local — crate bibliothèque Rust
|
||||
|
||||
## But
|
||||
|
||||
Ce pattern illustre la structure minimale attendue d'une crate bibliothèque Knowledge. Il ne crée pas une crate par anticipation et ne remplace pas [`../rules/510-RUST_CARGO.md`](../rules/510-RUST_CARGO.md).
|
||||
|
||||
## Façade
|
||||
|
||||
`src/lib.rs` reste une façade :
|
||||
|
||||
```rust
|
||||
//! Documentation de crate.
|
||||
|
||||
mod responsibility;
|
||||
|
||||
/// Contrat public exposé par la crate.
|
||||
pub use self::responsibility::PublicItem;
|
||||
```
|
||||
|
||||
Les définitions résident dans le module propriétaire :
|
||||
|
||||
```rust
|
||||
// file: crates/<crate>/src/responsibility.rs
|
||||
// version: 1
|
||||
|
||||
/// Contrat public possédé par cette responsabilité.
|
||||
pub struct PublicItem;
|
||||
```
|
||||
|
||||
Pour plusieurs responsabilités distinctes, créer plusieurs modules nommés selon leur rôle réel. Ne pas créer un fichier `api.rs`, `common.rs` ou `utils.rs` uniquement pour déplacer du code sans clarifier l'ownership.
|
||||
|
||||
## Tests
|
||||
|
||||
Les tests unitaires vivent sous `unit_tests/` et sont rattachés au module source correspondant. Les tests d'intégration vivent sous `tests/` et consomment l'API publique.
|
||||
Reference in New Issue
Block a user