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