6 releases

new 0.0.7 May 9, 2025
0.0.6 May 9, 2025
0.0.5 May 9, 2025
0.0.4 May 9, 2025
0.0.1 May 9, 2025

#578 in Filesystem

30 downloads per month

MIT license

19KB
710 lines

Abstract FS API for Rust

This crate offers a trait that looks exactly like the std::fs interface and supplies implementations for the os filesystem and an in-memory filesystem.

Useful for substituting the FileSystem in tests and benchmarks

use dyn_fs::FileSystem;
use dyn_fs::os::OsFileSystem;
use dyn_fs::mem::MemoryFileSystem;

fn read_file(fs: &dyn FileSystem) {
  let contents = fs.read(PathBuf::from("/path/to/file"))?;
  println!("{}", contents.len())
}

fn main() {
  let os_fs = OsFileSystem::default();
  let mem_fs = MemoryFileSystem::default();

  read_file(&os_fs);
  read_file(&mem_fs);
}

Dependencies

~6KB