parlov-output 0.2.0

Output formatters for parlov: SARIF, terminal table, and raw JSON.
Documentation
# parlov-output

Output formatters for parlov. Renders `OracleResult` as terminal tables or JSON.

## table

```rust
use parlov_output::render_table;

let output = render_table(&result);
println!("{output}");
```

```
+-----------+-----------+----------+-------------------------------+
| Oracle    | Verdict   | Severity | Evidence                      |
+==================================================================+
| Existence | Confirmed | High     | 403 (baseline) vs 404 (probe) |
|           |           | Label    | Authorization-based differential |
|           |           | Leaks    | Resource existence confirmed   |
|           |           | RFC Basis| RFC 9110 §15.5.4              |
+-----------+-----------+----------+-------------------------------+
```

ANSI-colored by verdict (red = Confirmed, yellow = Likely, green = NotPresent) and severity (red = High, yellow = Medium, cyan = Low). Multiple evidence lines get their own rows. Label, Leaks, and RFC Basis rows appear when the classifier provides metadata; omitted for `NotPresent` results.

## json

```rust
use parlov_output::render_json;

let json = render_json(&result)?;
```

```json
{
  "class": "Existence",
  "verdict": "Confirmed",
  "evidence": [
    "403 (baseline) vs 404 (probe)"
  ],
  "severity": "High",
  "label": "Authorization-based differential",
  "leaks": "Resource existence confirmed to low-privilege callers",
  "rfc_basis": "RFC 9110 §15.5.4"
}
```

Pretty-printed via `serde_json`. `label`, `leaks`, and `rfc_basis` are omitted when `None` (e.g. `NotPresent` results).

## planned

- SARIF v2.1.0 output via `serde-sarif` for CI/CD integration

## license

MIT OR Apache-2.0