Skip to main content

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}