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