#![no_std]
#![allow(async_fn_in_trait)]
#[cfg(feature = "std")]
extern crate std;
#[cfg(feature = "alloc")]
extern crate alloc;
pub mod error;
pub mod file;
pub mod raw;
#[cfg(feature = "exfat")]
pub mod exfat;
#[cfg(feature = "sync")]
#[path = ""]
pub mod sync {
pub use hadris_io::Result as IoResult;
pub use hadris_io::sync::{Parsable, Read, ReadExt, Seek, Writable, Write};
pub use hadris_io::{Error, ErrorKind, SeekFrom};
macro_rules! io_transform {
($($item:tt)*) => { hadris_macros::strip_async!{ $($item)* } };
}
#[allow(unused_macros)]
macro_rules! sync_only {
($($item:tt)*) => { $($item)* };
}
#[allow(unused_macros)]
macro_rules! async_only {
($($item:tt)*) => {};
}
#[path = "."]
mod __inner {
#[cfg(feature = "cache")]
pub mod cache;
pub mod dir;
pub mod fat_table;
#[cfg(feature = "write")]
pub mod format;
pub mod fs;
pub mod io;
pub mod read;
#[cfg(feature = "tool")]
pub mod tool;
pub mod write;
}
pub use __inner::*;
pub use __inner::dir::{DirectoryEntry, FatDir, FileEntry};
pub use __inner::fat_table::{Fat, Fat12, Fat16, Fat32, FatType};
pub use __inner::fs::FatFs;
pub use __inner::read::FatFsReadExt;
#[cfg(feature = "tool")]
pub use __inner::tool::analysis::FatAnalysisExt;
#[cfg(feature = "tool")]
pub use __inner::tool::verify::FatVerifyExt;
#[cfg(feature = "write")]
pub use __inner::write::{FatDateTime, FatFsWriteExt};
}
#[cfg(feature = "async")]
#[path = ""]
pub mod r#async {
pub use hadris_io::Result as IoResult;
pub use hadris_io::r#async::{Parsable, Read, ReadExt, Seek, Writable, Write};
pub use hadris_io::{Error, ErrorKind, SeekFrom};
macro_rules! io_transform {
($($item:tt)*) => { $($item)* };
}
#[allow(unused_macros)]
macro_rules! sync_only {
($($item:tt)*) => {};
}
#[allow(unused_macros)]
macro_rules! async_only {
($($item:tt)*) => { $($item)* };
}
#[path = "."]
mod __inner {
#[cfg(feature = "cache")]
pub mod cache;
pub mod dir;
pub mod fat_table;
#[cfg(feature = "write")]
pub mod format;
pub mod fs;
pub mod io;
pub mod read;
#[cfg(feature = "tool")]
pub mod tool;
pub mod write;
}
pub use __inner::*;
}
#[cfg(feature = "sync")]
pub use sync::*;
pub use error::{FatError, Result};
pub use raw::*;