29 lines
800 B
Markdown
29 lines
800 B
Markdown
# MabeLabRS Style Guide
|
|
|
|
## Code formatting
|
|
- Use `cargo fmt` with `rustfmt.toml` in repo root.
|
|
- Line width: 100.
|
|
- Always use `#[derive(Debug, Clone, PartialEq, Eq)]` on simple data types.
|
|
|
|
## Naming
|
|
- Crates: `mabelabrs-*` prefix.
|
|
- Traits: `CamelCase`, no `I` prefix.
|
|
- Structs: `CamelCase`.
|
|
- Enums: `CamelCase` with variant `CamelCase`.
|
|
- Functions: `snake_case`.
|
|
|
|
## Error handling
|
|
- Return `Result<T, E>` from fallible functions.
|
|
- Use `thiserror` for error enums.
|
|
- Avoid panics, except in tests or truly unrecoverable states.
|
|
|
|
## Documentation
|
|
- All public items must have `///` doc comments.
|
|
- Modules should have a top-level `//!` doc comment.
|
|
|
|
## Testing
|
|
- Unit tests inline in modules (`#[cfg(test)]`).
|
|
- Integration tests in `/tests`.
|
|
- Deterministic golden tests in `/tests/golden`.
|
|
|