docs(rust-style): order declarations by dependency
This commit is contained in:
38
src/skills/style/rust/rules/declarations.md
Normal file
38
src/skills/style/rust/rules/declarations.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# 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<Diagnostic>,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct FileStore {
|
||||||
|
files: Vec<SourceFile>,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct SourceFile {
|
||||||
|
path: PathBuf,
|
||||||
|
source: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Diagnostic {
|
||||||
|
message: String,
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user