pub fn read_file(path: &Path) -> Result<FileData>
Read a file with zero-copy mmap for large files, buffered read for small ones.