1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// =============================================================================
// Copyright (c) 2026 Haixing Hu.
//
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0.
// =============================================================================
// property contract tests.
//! Provider entry-point identifiers used for facade dispatch.
/// A concrete operation entry point implemented by a filesystem provider.
///
/// # Examples
///
/// ```rust
/// use qubit_fs::spi::ProviderOperation;
///
/// assert!(matches!(ProviderOperation::Stat, ProviderOperation::Stat));
/// ```
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(u8)]
#[non_exhaustive]
pub enum ProviderOperation {
/// Reads metadata for one path.
Stat = 0,
/// Opens a directory listing session.
List = 1,
/// Opens a file reader.
OpenReader = 2,
/// Opens a file writer.
OpenWriter = 3,
/// Creates a directory.
CreateDirectory = 4,
/// Deletes a file.
DeleteFile = 5,
/// Deletes a directory.
DeleteDirectory = 6,
/// Attempts a provider-native copy.
TryCopy = 7,
/// Renames a resource.
Rename = 8,
/// Creates a temporary file.
CreateTempFile = 9,
/// Creates a temporary directory.
CreateTempDirectory = 10,
}