26 lines
1 KiB
Markdown
26 lines
1 KiB
Markdown
|
|
# Trictrac Project Guidelines
|
||
|
|
|
||
|
|
## Build & Run Commands
|
||
|
|
- Build: `cargo build`
|
||
|
|
- Test: `cargo test`
|
||
|
|
- Test specific: `cargo test -- test_name`
|
||
|
|
- Lint: `cargo clippy`
|
||
|
|
- Format: `cargo fmt`
|
||
|
|
- Run CLI: `RUST_LOG=info cargo run --bin=client_cli`
|
||
|
|
- Run CLI with bots: `RUST_LOG=info cargo run --bin=client_cli -- --bot dummy,dummy`
|
||
|
|
- Build Python lib: `maturin build -m store/Cargo.toml --release`
|
||
|
|
|
||
|
|
## Code Style
|
||
|
|
- Use Rust 2021 edition idioms
|
||
|
|
- Error handling: Use Result<T, Error> pattern with custom Error types
|
||
|
|
- Naming: snake_case for functions/variables, CamelCase for types
|
||
|
|
- Imports: Group standard lib, external crates, then internal modules
|
||
|
|
- Module structure: Prefer small, focused modules with clear responsibilities
|
||
|
|
- Documentation: Document public APIs with doc comments
|
||
|
|
- Testing: Write unit tests in same file as implementation
|
||
|
|
- Python bindings: Use pyo3 for creating Python modules
|
||
|
|
|
||
|
|
## Architecture
|
||
|
|
- Core game logic in `store` crate
|
||
|
|
- Multiple clients: CLI, TUI, Bevy (graphical)
|
||
|
|
- Bot interfaces in `bot` crate
|