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//    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}