qubit_fs/options/metadata_preserve_policy.rs
1/*******************************************************************************
2 *
3 * Copyright (c) 2026 Haixing Hu.
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 *
7 * Licensed under the Apache License, Version 2.0.
8 *
9 ******************************************************************************/
10//! Metadata preservation policy.
11
12/// Metadata preservation policy for copy operations.
13#[derive(Clone, Copy, Debug, Eq, PartialEq)]
14pub enum MetadataPreservePolicy {
15 /// Do not preserve metadata.
16 None,
17 /// Preserve portable metadata fields.
18 Portable,
19 /// Preserve user-defined metadata.
20 UserMetadata,
21 /// Preserve provider-native metadata when possible.
22 ProviderNative,
23 /// Preserve every metadata field that the provider can represent.
24 All,
25}
26
27impl Default for MetadataPreservePolicy {
28 /// Preserves portable metadata by default.
29 #[inline]
30 fn default() -> Self {
31 Self::Portable
32 }
33}