prismatica 0.3.1

308 scientific colormaps as compile-time Rust constants
Documentation
# Contributing to Prismatica

Thank you for your interest in contributing to Prismatica. This document covers
the essentials for reporting bugs, submitting changes, and meeting code quality
requirements.

## Reporting Bugs

Open an issue at <https://github.com/resonant-jovian/prismatica/issues> with:

- A clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Rust version (`rustc --version`) and OS

## Pull Request Process

1. Fork the repository and create a feature branch from `main`.
2. Make your changes (see requirements below).
3. Open a pull request against `main` with a concise description of the change.
4. Address any review feedback.

## Development Setup

```bash
git clone https://github.com/resonant-jovian/prismatica.git
cd prismatica
cargo xtask fetch all      # Download upstream colormap data
cargo xtask generate all   # Generate Rust source from data/
cargo test --all-features -- --test-threads=1
```

MSRV is **1.85**. Ensure your toolchain meets this minimum.

## Code Quality Requirements

Before submitting a PR, verify all of the following pass:

```bash
cargo fmt --all                                            # Format
cargo clippy --all-targets --all-features -- -D warnings   # Lint
cargo test --all-features -- --test-threads=1              # Tests
cargo check --no-default-features --features core          # no_std compat
```

The crate enforces:

- `#![no_std]` -- all code must work without the standard library.
- `#![forbid(unsafe_code)]` -- no `unsafe` blocks, ever.
- `#![deny(clippy::unwrap_used)]` -- use `expect()` or proper error handling.

## Generated Files

Files marked with `// Auto-generated by prismatica xtask -- do not edit` are
generated from upstream data. **Do not edit these files by hand.** Instead,
modify the code generation pipeline in the `xtask/` crate and re-run:

```bash
cargo xtask fetch all && cargo xtask generate all
```

## License

By contributing, you agree that your contributions will be licensed under the
GPL-3.0-only license, the same license that covers the project.