Skip to main content

qubit_fs/
lib.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//! # Qubit FS
11//!
12//! Pluggable filesystem abstraction for Rust.
13//!
14//! This crate defines provider-neutral filesystem contracts, path and URI
15//! models, metadata, operation options, copy outcomes, temporary resource
16//! handles, and SPI-backed provider registry types.
17
18#![deny(missing_docs)]
19
20mod error;
21mod metadata;
22mod options;
23mod path;
24mod provider;
25mod temp;
26mod traits;
27
28pub use error::{
29    FsError,
30    FsErrorKind,
31    FsOperation,
32    FsResult,
33};
34pub use metadata::{
35    Checksum,
36    ChecksumAlgorithm,
37    DirEntry,
38    FileKind,
39    FileMetadata,
40    FileSystemCapabilities,
41    FileSystemMetadata,
42    WriteOutcome,
43};
44pub use options::{
45    AtomicityRequirement,
46    ChecksumPolicy,
47    CopyConflictPolicy,
48    CopyMethod,
49    CopyMode,
50    CopyOptions,
51    CopyOutcome,
52    CopyStats,
53    CreateDirOptions,
54    DeleteOptions,
55    ListOptions,
56    MetadataPreservePolicy,
57    PersistOptions,
58    ProgressPolicy,
59    ReadOptions,
60    RenameOptions,
61    ServerSidePreference,
62    WriteMode,
63    WriteOptions,
64};
65pub use path::{
66    FsAuthority,
67    FsPath,
68    FsUri,
69    PathSemantics,
70};
71pub use provider::{
72    CredentialRef,
73    FileResource,
74    FileSystemConfig,
75    FileSystemProvider,
76    FileSystemRegistry,
77    FileSystemSpec,
78    FileSystems,
79};
80pub use temp::{
81    ManagedTempDir,
82    ManagedTempFile,
83    ManagedTempResourceFactory,
84    TempDir,
85    TempDirOptions,
86    TempFile,
87    TempFileOptions,
88    TempResource,
89    TempResourceFactory,
90    TempResources,
91};
92pub use traits::{
93    DirectoryStream,
94    DirectoryStreamExt,
95    FileReader,
96    FileSystem,
97    FileSystemExt,
98    FileWriter,
99};