Skip to main content

qubit_metadata/schema/
unknown_metadata_field_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//! [`UnknownMetadataFieldPolicy`] — handling for undeclared metadata keys.
9
10use serde::Deserialize;
11use serde::Serialize;
12
13/// Policy for metadata fields that are not declared by a schema.
14///
15/// # Examples
16///
17/// ```
18/// use qubit_metadata::UnknownMetadataFieldPolicy;
19///
20/// assert_eq!(UnknownMetadataFieldPolicy::default(), UnknownMetadataFieldPolicy::Reject);
21/// ```
22#[must_use = "the policy must be configured on a metadata schema"]
23#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
24#[serde(rename_all = "snake_case")]
25pub enum UnknownMetadataFieldPolicy {
26    /// Reject metadata keys that are not declared in the schema.
27    #[default]
28    Reject,
29    /// Allow metadata keys that are not declared in the schema.
30    Allow,
31}