qubit_json/error/error_privacy_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 serde 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/// ```compile_fail
18/// #![deny(unused_must_use)]
19/// use qubit_json::ErrorPrivacyPolicy;
20///
21/// fn configured_policy() -> ErrorPrivacyPolicy {
22/// ErrorPrivacyPolicy::Redacted
23/// }
24///
25/// configured_policy();
26/// ```
27#[must_use]
28#[non_exhaustive]
29#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
30pub enum ErrorPrivacyPolicy {
31 /// Removes input-derived serde messages and sources from decoding errors.
32 #[default]
33 Redacted,
34 /// Retains complete serde messages and sources for diagnostic use.
35 Detailed,
36}