Skip to main content

vfsi_sync/
lib.rs

1//! Synchronous filesystem interface facets.
2//!
3//! The compatibility [`VecFs`] trait remains the optimized vector contract.
4//! Its single-operation helpers form today's scalar facet without introducing
5//! a second, conflicting set of method names.
6
7use std::path::{Path, PathBuf};
8
9pub use vfsi_core::*;
10
11#[doc(hidden)]
12pub mod path {
13    pub use vfsi_core::path::*;
14}
15
16mod traits;
17pub use traits::{
18    DEFAULT_DIRECTORY_MAX_ENTRIES, DEFAULT_DIRECTORY_MAX_PATH_BYTES,
19    DEFAULT_READ_ALLV_MAX_TOTAL_BYTES, DEFAULT_READ_MAX_BYTES, DEFAULT_WALK_MAX_DEPTH,
20    ReadAllOptions, ReadDirOptions, VecFs, VecFsExt, WalkOptions, rm_recursive,
21};
22mod io;
23pub use io::{VfFileHandle, VfOpenOptions};
24mod client;
25pub use client::{FsClient, FsFile, FsRead, FsReadInto, FsWrite, OpenOptions, SetMetadata};
26mod native;
27pub use native::{
28    CopyFileSystem, DirectoryFileSystem, FileSystem, LinkFileSystem, MetadataFileSystem,
29    NamespaceFileSystem, NativeFileSystem, VectorFileSystem,
30};
31
32/// Scalar/singular view of the synchronous interface.
33pub mod sfsi {
34    pub use crate::{
35        CopyFileSystem, DirectoryFileSystem, FileSystem, FsClient, FsFile, LinkFileSystem,
36        MetadataFileSystem, NamespaceFileSystem, NativeFileSystem, OpenOptions, ReadDirOptions,
37        VecFs, VecFsExt, WalkOptions,
38    };
39    pub use vfsi_core::{Fd, VfAttrs, VfError, VfFile, VfOffset, VfResult, VfType};
40}
41
42/// Vectorized view of the synchronous interface.
43pub mod vfsi {
44    pub use crate::{
45        DEFAULT_DIRECTORY_MAX_ENTRIES, DEFAULT_DIRECTORY_MAX_PATH_BYTES,
46        DEFAULT_READ_ALLV_MAX_TOTAL_BYTES, DEFAULT_READ_MAX_BYTES, DEFAULT_WALK_MAX_DEPTH,
47        ReadAllOptions, ReadDirOptions, VecFs, VecFsExt, VectorFileSystem, WalkOptions,
48        rm_recursive,
49    };
50    pub use vfsi_core::*;
51}
52
53#[cfg(feature = "test-support")]
54#[doc(hidden)]
55pub mod test_support;