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