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}