[package]
name = "hadris-fat"
version.workspace = true
description = "A library for working with FAT filesystems (FAT12/FAT16/FAT32/exFAT)"
readme = "README.md"
keywords = ["fat", "fat32", "filesystem", "no-std", "vfat"]
categories = ["no-std", "filesystem"]
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true

[features]
default = ["read", "write", "lfn", "std"]
sync = ["hadris-io/sync", "hadris-common/sync"]
async = ["hadris-io/async", "hadris-common/async"]
alloc = ["chrono?/alloc"]
std = ["sync", "alloc", "dep:chrono", "chrono/std", "chrono/clock", "hadris-io/std", "hadris-common/std"]
read = []
write = ["alloc", "read"]
lfn = []
# FAT sector caching for reduced I/O operations
cache = ["alloc"]
# Analysis and diagnostic APIs
tool = ["alloc", "read"]
# exFAT filesystem support
exfat = ["alloc"]

[dependencies]
hadris-common = { workspace = true }
hadris-io = { workspace = true }
hadris-macros = { workspace = true }
spin.workspace = true

bitflags = { workspace = true }
bytemuck = { workspace = true, features = [
  "derive",
  "min_const_generics",
] }
chrono = { workspace = true, optional = true }

[dev-dependencies]
pretty_assertions = "1.4.1"
static_assertions = "1.1.0"
tempfile = "3"
