use lcpfs::{FsResult, Pool};
fn main() -> FsResult<()> {
println!("=== LCPFS Basic Pool Example ===\n");
println!("1. Creating pool 'mypool' on device 0...");
let mut pool = Pool::create_pool(0, "mypool")?;
println!(" ✓ Pool created successfully\n");
println!("2. Creating file /hello.txt...");
let fd = pool.create("/hello.txt", 0o644)?;
println!(" ✓ File created with fd={}\n", fd);
println!("3. Writing data to file...");
let data = b"Hello, LCPFS! This is a test file.";
let written = pool.write(fd, data)?;
println!(" ✓ Wrote {} bytes\n", written);
println!("4. Closing file...");
pool.close(fd)?;
println!(" ✓ File closed\n");
println!("5. Reopening file for reading...");
let fd = pool.open("/hello.txt", 0)?;
println!(" ✓ File opened with fd={}\n", fd);
println!("6. Reading data...");
let mut buffer = vec![0u8; 1024];
let read = pool.read(fd, &mut buffer)?;
println!(" ✓ Read {} bytes", read);
println!(
" Content: {:?}\n",
String::from_utf8_lossy(&buffer[..read])
);
pool.close(fd)?;
println!("7. Creating directory /documents...");
pool.mkdir("/documents", 0o755)?;
println!(" ✓ Directory created\n");
println!("8. Creating /documents/notes.txt...");
let fd = pool.create("/documents/notes.txt", 0o644)?;
pool.write(fd, b"Important notes go here")?;
pool.close(fd)?;
println!(" ✓ File created in directory\n");
println!("9. Listing root directory...");
let entries = pool.readdir("/")?;
println!(" Files in /:");
for entry in entries {
println!(" - {}", entry.name);
}
println!("\n=== Example completed successfully! ===");
Ok(())
}