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}