36 lines
1.2 KiB
Markdown
36 lines
1.2 KiB
Markdown
|
# AGENTS.md
|
||
|
|
||
|
## Build Commands
|
||
|
- Build all crates: `cargo build`
|
||
|
- Build specific crate: `cargo build -p <crate-name>` (e.g., `cargo build -p offline-web-storage`)
|
||
|
- Build with optimizations: `cargo build --release`
|
||
|
|
||
|
## Test Commands
|
||
|
- Run all tests: `cargo test`
|
||
|
- Run specific test: `cargo test <test_name>` (e.g., `cargo test test_dependencies_updated_when_nodes_added`)
|
||
|
- Run tests in specific crate: `cargo test -p <crate-name>`
|
||
|
- Run tests with output: `cargo test -- --nocapture`
|
||
|
|
||
|
## Code Style Guidelines
|
||
|
|
||
|
### Formatting & Imports
|
||
|
- Group imports by std, external crates, and internal modules
|
||
|
- Sort imports alphabetically within groups
|
||
|
- Use block imports with curly braces for multi-imports
|
||
|
|
||
|
### Types & Naming
|
||
|
- Use snake_case for functions, variables, and modules
|
||
|
- Use PascalCase for types and structs
|
||
|
- Prefix trait implementations with the trait name
|
||
|
- Use Option<T> for nullable values, not unwrap()
|
||
|
|
||
|
### Error Handling
|
||
|
- Use Result<T, E> with custom error types
|
||
|
- Implement thiserror::Error for error enums
|
||
|
- Propagate errors with ? operator
|
||
|
- Use descriptive error messages
|
||
|
|
||
|
### Documentation
|
||
|
- Document public APIs with /// comments
|
||
|
- Include examples in documentation for complex functions
|
||
|
- Explain parameter and return types in function docs
|