qubit_json/decode/diagnostic_policy.rs
1// =============================================================================
2// Copyright (c) 2025 - 2026 Haixing Hu.
3//
4// SPDX-License-Identifier: Apache-2.0
5//
6// Licensed under the Apache License, Version 2.0.
7// =============================================================================
8//! Defines the privacy policy for JSON decoding error diagnostics.
9
10/// Controls whether JSON decoding errors retain input-derived details.
11///
12/// Redacted diagnostics are safe by default. Detailed diagnostics are intended
13/// only for controlled environments because they may contain input values.
14///
15/// # Examples
16///
17/// ```
18/// use qubit_json::decode::DiagnosticPolicy;
19///
20/// let policy = DiagnosticPolicy::Redacted;
21/// assert_ne!(policy, DiagnosticPolicy::Detailed);
22/// ```
23#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
24pub enum DiagnosticPolicy {
25 /// Retains only stable classifications and source coordinates.
26 ///
27 /// Redacted errors never retain unexpected bytes, token/key/value text, or
28 /// parser and Serde sources.
29 #[default]
30 Redacted,
31 /// Retains complete serde messages and sources for diagnostic use.
32 Detailed,
33}