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}