suzunari-error 0.2.0

A highly traceable and noise-free error system that propagates error locations as error contexts and minimizes information output to the log
Documentation
# Contributing

Thank you for your interest in contributing to Suzunari Error!

## Prerequisites

- Rust toolchain: The required version and components (rustfmt, clippy, rust-analyzer) are defined in `rust-toolchain.toml`. Simply install [rustup]https://rustup.rs/ and it will handle the rest.

## Development

```bash
# Build
cargo build --all-features

# Test (all features — same as CI)
cargo test --all-features

# Lint
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings

# Feature-tier tests
cargo test -p suzunari-error-feature-tests --features test-std
cargo test -p suzunari-error-feature-tests --features test-alloc
cargo test -p suzunari-error-feature-tests --no-default-features --features test-core-only  # core-only
```

## Project Structure

```
├── src/                  # Main library
│   ├── lib.rs            # Crate root
│   ├── location.rs       # Location type
│   ├── stack_error.rs    # StackError trait
│   ├── stack_report.rs   # StackReport formatter
│   ├── boxed_stack_error.rs  # BoxedStackError (alloc)
│   ├── display_error.rs  # DisplayError adapter
│   └── __private.rs      # Internal helpers for derive macro codegen
├── macro-impl/           # Proc-macro crate
│   └── src/
│       ├── lib.rs        # Macro entry points
│       ├── attribute.rs  # #[suzunari_error]
│       ├── derive.rs     # #[derive(StackError)]
│       ├── report.rs     # #[suzunari_error::report]
│       ├── suzu_attr.rs  # #[suzu(...)] attribute processing
│       └── helper.rs     # Shared utilities
├── examples/             # Runnable usage examples
├── tests/                # Integration tests (std)
├── tests-features/       # Feature-tier compile checks and integration tests
├── docs/                 # Development guidelines
└── .github/              # CI workflows
```

## Coding Conventions

See [docs/guidelines-rs.md](./docs/guidelines-rs.md) for Rust style guidelines and [docs/coding-practices.md](./docs/coding-practices.md) for general coding practices.

## Git Conventions

### Branches

[Conventional Branch](https://conventional-branch.github.io/) format:

```
feature/add-display-error
bugfix/fix-location-tracking
chore/update-dependencies
```

### Commits

GitMoji + Conventional Commits:

```
✨: Add suzunari_error attribute macro
🐛: Fix column tracking in nested calls
♻️: Simplify StackError trait bounds
```

## Pull Requests

1. Create a branch following the naming convention above
2. Implement changes and commit
3. Push and open a pull request on GitHub
4. Include in the PR description:
   - Purpose and context of the change
   - Related issue number (if any)
   - How to test

## Release

- The `main` branch should be kept in a stable state
- Releases are tagged: `v1.0.0`, `v1.0.1`, etc.
- Follow [Semantic Versioning]https://semver.org/

## Questions?

If you have questions or need help, feel free to [start a discussion](https://github.com/ryotan/suzunari-error/discussions).