Skip to main content

qubit_fs/copy/
fallback_rejection.rs

1// =============================================================================
2//    Copyright (c) 2026 Haixing Hu.
3//
4//    SPDX-License-Identifier: Apache-2.0
5// =============================================================================
6
7//! Reasons the allowlisted stream copy cannot serve options.
8
9/// First static reason a stream fallback cannot honor a copy request.
10#[derive(Clone, Copy, Debug, Eq, PartialEq)]
11#[non_exhaustive]
12pub enum FallbackRejection {
13    /// Tree traversal was requested.
14    TreeMode,
15    /// The symlink override differs from the filesystem policy.
16    SymlinkPolicyOverride,
17    /// Continue-on-error tree behavior was requested.
18    ContinueOnError,
19    /// Metadata preservation was requested.
20    MetadataPreservation,
21    /// Server-side copy was required.
22    ServerSideRequired,
23    /// Missing destination parents were requested.
24    CreateParent,
25    /// Durable publication was required.
26    DurabilityRequired,
27    /// Atomic skip cannot be represented by create-new fallback.
28    AtomicSkip,
29    /// The conflict policy is outside the fallback allowlist.
30    ConflictPolicy,
31    /// The provider lacks read support.
32    MissingRead,
33    /// The provider lacks write support.
34    MissingWrite,
35    /// The provider lacks stat support.
36    MissingStat,
37}