# 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//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.