rucc-diag 0.1.0

Diagnostics, spans and source maps for the rucc C compiler.
Documentation

Diagnostics: spans, severities, and the structured form every message is built as.

Design: spec/03-architecture.md. Layer rank 1, see spec/18-package-layout.md.

A diagnostic is a value, not a string. It is rendered to a terminal, to JSON for editors, or not at all when a caller is only counting errors, and building it as a value is what makes those three the same code path. spec/03-architecture.md makes the JSON form a tier 2 stability promise because editors consume it.

Status

The severity, span and diagnostic types are real. Rendering, source maps and the -fdiagnostics-format= plumbing land in M0 and M1.

This crate is tier 3 in spec/18-package-layout.md section 18.5: its Rust API is explicitly unstable and will change without a major version bump.