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_READ_STREAM_CHUNK_BYTES,
20    DEFAULT_WALK_MAX_DEPTH, ReadAllOptions, ReadDirOptions, ReadStreamOptions, VecFs, VecFsExt,
21    WalkOptions, rm_recursive,
22};
23mod io;
24pub use io::{VfFileHandle, VfOpenOptions};
25mod client;
26pub use client::{FsClient, FsFile, FsRead, FsReadInto, FsWrite, OpenOptions, SetMetadata};
27mod native;
28pub use native::{
29    CopyFileSystem, DirectoryFileSystem, FileSystem, LinkFileSystem, MetadataFileSystem,
30    NamespaceFileSystem, NativeFileSystem, VectorFileSystem,
31};
32
33/// Scalar/singular view of the synchronous interface.
34pub mod sfsi {
35    pub use crate::{
36        CopyFileSystem, DirectoryFileSystem, FileSystem, FsClient, FsFile, LinkFileSystem,
37        MetadataFileSystem, NamespaceFileSystem, NativeFileSystem, OpenOptions, ReadDirOptions,
38        ReadStreamOptions, VecFs, VecFsExt, WalkOptions,
39    };
40    pub use vfsi_core::{Fd, VfAttrs, VfError, VfFile, VfOffset, VfResult, VfType};
41}
42
43/// Vectorized view of the synchronous interface.
44pub mod vfsi {
45    pub use crate::{
46        DEFAULT_DIRECTORY_MAX_ENTRIES, DEFAULT_DIRECTORY_MAX_PATH_BYTES,
47        DEFAULT_READ_ALLV_MAX_TOTAL_BYTES, DEFAULT_READ_MAX_BYTES, DEFAULT_READ_STREAM_CHUNK_BYTES,
48        DEFAULT_WALK_MAX_DEPTH, ReadAllOptions, ReadDirOptions, ReadStreamOptions, VecFs, VecFsExt,
49        VectorFileSystem, WalkOptions, rm_recursive,
50    };
51    pub use vfsi_core::*;
52}
53
54#[cfg(feature = "test-support")]
55#[doc(hidden)]
56pub mod test_support;