# 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 ```rust pub struct Report { files: FileStore, diagnostics: Vec, } struct FileStore { files: Vec, } struct SourceFile { path: PathBuf, source: String, } struct Diagnostic { message: String, } ```