1.1 KiB
1.1 KiB
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.
Façade
src/lib.rs reste une façade :
//! 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 :
// 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.