use littlefs_rust::{Config, Filesystem, RamStorage};
fn main() {
let mut storage = RamStorage::new(512, 128);
let config = Config::new(512, 128);
Filesystem::format(&mut storage, &config).expect("format failed");
let fs = Filesystem::mount(storage, config)
.map_err(|(e, _)| e)
.expect("mount failed");
fs.mkdir("/docs").expect("mkdir docs");
fs.mkdir("/docs/drafts").expect("mkdir drafts");
fs.write_file("/docs/readme.txt", b"Read me")
.expect("write readme");
fs.write_file("/docs/drafts/notes.txt", b"Draft notes")
.expect("write notes");
println!("/ contents:");
for entry in fs.list_dir("/").expect("list /") {
println!(
" {} ({:?}, {} bytes)",
entry.name, entry.file_type, entry.size
);
}
println!("\n/docs contents:");
for entry in fs.list_dir("/docs").expect("list /docs") {
println!(
" {} ({:?}, {} bytes)",
entry.name, entry.file_type, entry.size
);
}
fs.rename("/docs/readme.txt", "/docs/README.txt")
.expect("rename");
println!("\nAfter rename, /docs contains:");
for entry in fs.list_dir("/docs").expect("list /docs") {
println!(" {}", entry.name);
}
let meta = fs.stat("/docs/README.txt").expect("stat");
println!(
"\n/docs/README.txt: {:?}, {} bytes",
meta.file_type, meta.size
);
fs.remove("/docs/drafts/notes.txt").expect("remove file");
fs.remove("/docs/drafts").expect("remove dir");
println!("\nAfter removing drafts, /docs contains:");
for entry in fs.list_dir("/docs").expect("list /docs") {
println!(" {}", entry.name);
}
let size = fs.fs_size().expect("fs_size");
println!("\nFilesystem uses {} blocks", size);
fs.unmount().expect("unmount");
}