Files
dev/src/skills/style/rust/rules/declarations.md

855 B

Declaration rules

Order declarations by dependency

Rule

Order Rust declarations in depth-first dependency order. Place each function, struct, and enum before private declarations that support it. For structs and enums, order supporting declarations by field or variant order. For functions, order helper declarations by first use in the function body. Apply the same rule recursively to each supporting declaration.

Rationale

Dependency order lets readers start at the public operation or type. Readers can then continue downward into the declarations that explain each part.

Examples

pub struct Report {
    files: FileStore,
    diagnostics: Vec<Diagnostic>,
}

struct FileStore {
    files: Vec<SourceFile>,
}

struct SourceFile {
    path: PathBuf,
    source: String,
}

struct Diagnostic {
    message: String,
}