Skip to main content

qubit_fs/metadata/
file_system_capabilities.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2026 Haixing Hu.
4 *
5 *    SPDX-License-Identifier: Apache-2.0
6 *
7 *    Licensed under the Apache License, Version 2.0.
8 *
9 ******************************************************************************/
10//! Filesystem capability declaration.
11
12/// Static capability hints exposed by one filesystem implementation.
13#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
14pub struct FileSystemCapabilities {
15    /// Whether the backend has hierarchical path semantics.
16    pub hierarchical_paths: bool,
17    /// Whether the backend supports directories.
18    pub directories: bool,
19    /// Whether the backend can represent empty directories.
20    pub empty_directories: bool,
21    /// Whether the backend supports symbolic links.
22    pub symlinks: bool,
23    /// Whether range reads are supported.
24    pub range_read: bool,
25    /// Whether append writes are supported.
26    pub append: bool,
27    /// Whether random writes are supported.
28    pub random_write: bool,
29    /// Whether rename can be atomic.
30    pub atomic_rename: bool,
31    /// Whether replacement writes can be atomic.
32    pub atomic_replace: bool,
33    /// Whether conditional write operations are supported.
34    pub conditional_write: bool,
35    /// Whether server-side copy is supported.
36    pub server_side_copy: bool,
37    /// Whether recursive delete is supported.
38    pub recursive_delete: bool,
39    /// Whether temporary files are supported.
40    pub temp_file: bool,
41    /// Whether temporary directories are supported.
42    pub temp_dir: bool,
43    /// Whether temporary resource persistence is supported.
44    pub temp_persist: bool,
45    /// Whether temporary resource persistence can be atomic.
46    pub temp_persist_atomic: bool,
47    /// Whether provider-native metadata is exposed.
48    pub native_metadata: bool,
49}