1mod byte_budget;
2mod db_pool;
3mod error;
4mod facade;
5pub mod freshness;
6mod lock;
7mod mapping;
8pub mod metrics;
9mod ogg_index;
10mod readahead;
11mod reader;
12mod refresh_diff;
13mod scan;
14mod telemetry;
15mod template;
16mod tree;
17
18pub use db_pool::DbPool;
19pub use error::{CoreError, Result};
20pub use facade::{Attr, Fh, Mode, MountConfig, Musefs, PassthroughFd};
21pub use musefs_db::convert;
22pub use readahead::{BackingReader, ReadAhead, ReadAheadPool};
23pub use reader::{HeaderCache, ResolvedFile, read_at, read_at_with_file};
24pub use scan::scan_directory_full_oracle;
25pub use scan::{
26 ChecksumTier, MatchStrictness, ProgressSink, RevalidateStats, ScanOptions, ScanProgress,
27 ScanStats, revalidate, revalidate_with, scan_directory, scan_directory_with,
28};
29pub use telemetry::{
30 AllocatorStats, CoreTelemetry, FuseTelemetry, PassthroughTelemetry, render_prometheus,
31};
32pub use template::{Template, TemplateError};
33pub use tree::{Node, NodeKind, VirtualTree};
34
35#[cfg(test)]
36mod cross_layer_caps {
37 #[test]
38 fn structural_body_cap_matches_flac_block_limit() {
39 assert_eq!(
40 u64::try_from(musefs_db::limits::MAX_STRUCTURAL_BODY_LEN).unwrap(),
41 musefs_format::flac::MAX_BLOCK_BODY,
42 "db structural body cap must equal FLAC's 24-bit block limit",
43 );
44 }
45}