Rust Development Guide¶
This guide covers comprehensive Rust development guidance including code organization, patterns, architectural decisions, and formatting standards. For general guidance applicable to all languages, see the main practices guide. For cross-language formatting and shared workflow guidance, see the code style guide, environment guide, validation guide, testing guide, and release guide.
Module Organization¶
Follow standard Rust module organization patterns:
src/lib.rsorsrc/main.rsas the crate rootUse
src/module.rsfiles withsrc/module/directories for submodulesOrganize related functionality into logical modules
Re-export important items at appropriate levels using
pub use
Apply project nomenclature guidelines from the nomenclature guide when naming modules, following Rust’s
snake_caseconvention for module names.
Naming Conventions¶
Follow standard Rust naming conventions as defined in the Rust API Guidelines:
Types, traits, enums:
PascalCaseFunctions, variables, modules:
snake_caseConstants, statics:
SCREAMING_SNAKE_CASEMacros:
snake_case(by convention, though not enforced)
Apply project nomenclature guidelines from the nomenclature guide when naming types, functions, and variables.
Documentation¶
Content Standards¶
Write documentation comments in narrative mood (third person) consistent with project documentation standards.
Use standard Rust documentation patterns:
///for public API documentation//!for module-level documentationInclude examples in documentation when helpful
Document error conditions using the standard
# Errorssection:/// Validates user configuration. /// /// # Errors /// /// Returns `CrateError::Validation` if the configuration is invalid. pub fn validate_config(config: &Config) -> Result<(), CrateError> { // implementation }
Visual Formatting¶
Use standard Rust documentation comments (
///for items,//!for modules).Write documentation in narrative mood (third person) consistent with project documentation conventions.
✅ Prefer:
/// Validates the configuration data. /// /// Returns the validated configuration or an error if validation fails. pub fn validate_configuration(config: &Config) -> Result<Config, ConfigError> { // implementation }
❌ Avoid:
/// Validate the configuration data. pub fn validate_configuration(config: &Config) -> Result<Config, ConfigError> { // implementation }
Formatting Standards¶
Follow the standard Rust formatting conventions enforced by
rustfmt. The project’s.rustfmt.tomlconfiguration defines the specific formatting rules.Use
cargo fmtto automatically format code according to project standards.Maximum line length follows the general project standard of 79 columns, which may be configured in
.rustfmt.tomlif different from Rust defaults.