#![doc = include_str!("../README.md")]
#![cfg_attr(not(any(test, feature = "std")), no_std)]
#![deny(missing_docs)]
#![allow(clippy::too_many_arguments)]
extern crate alloc;
extern crate core;
use alloc::sync::Arc;
pub use api::EntryType;
use api::raw_directory_entry::{
Attributes, RegularDirectoryEntry, UnknownDirectoryEntry, VfatDirectoryEntry,
};
pub use api::{Directory, DirectoryEntry, Metadata, VfatMetadataTrait};
pub(crate) use cache::CachedPartition;
pub use error::{Result, VfatRsError};
pub(crate) use formats::cluster_id::ClusterId;
#[cfg(not(feature = "std"))]
pub use formats::path::PathBuf;
#[cfg(feature = "std")]
pub use std::path::PathBuf;
pub use formats::sector_id::SectorId;
pub use vfat::VfatFS;
mod api;
mod cache;
mod cluster;
mod error;
mod fat_table;
#[cfg(feature = "std")]
mod fileblockdevice;
mod formats;
pub mod io;
mod macros;
pub mod mbr;
mod time;
pub mod traits;
mod vfat;
const EBPF_VFAT_MAGIC: u8 = 0x28;
const EBPF_VFAT_MAGIC_ALT: u8 = 0x29;
pub const SECTOR_SIZE: usize = 512;
type ArcMutex<CachedPartition> = Arc<CachedPartition>;
#[cfg(feature = "std")]
pub use time::TimeManagerChronos;
pub use time::TimeManagerNoop;
#[cfg(feature = "std")]
pub use fileblockdevice::FilebackedBlockDevice;
pub use traits::{BlockDevice, TimeManagerTrait};