Skip to main content

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}