ApeMBR

MIT License Crates.io Documentation APE

simple crate to interface between a disk and it's partitions

This crate is especially designed to provide an interface between a disk and a file system library, where both are able to implement embedded_io.

Dead simple, as it should be.

Usage

This crate can be used by adding ape-mbr to the dependencies in your project's Cargo.toml.

toml [dependencies] ape-mbr = "0.1.0"

Examples

Here's ape-mbr being coupled with ape-fatfs

```rust use std::io::prelude::*; use ape_fatfs::{ fs::{ FsOptions, FileSystem, }, io::{ StdIoWrapper } };

use ape_mbr::{ PartitionId, MBR, };

fn main() { // Initialize the MBR let img_file = std::fs::OpenOptions::new().read(true).write(true) .open("test.img").unwrap();

let img_file = StdIoWrapper::new(img_file);

let mut mbr = MBR::new(img_file).unwrap();
let mut p1 = mbr.get_partition(PartitionId::One).unwrap();

let fs = FileSystem::new(p1, FsOptions::new()).unwrap();
let root_dir = fs.root_dir();

// Write a file
root_dir.create_dir("foo").unwrap();
let mut file = root_dir.create_file("foo/hello.txt").unwrap();
file.truncate().unwrap();
file.write_all(b"Hello World!").unwrap();

// Read a directory
let dir = root_dir.open_dir("foo").unwrap();
for r in dir.iter() {
    let entry = r.unwrap();
    println!("{}", entry.file_name());
}

} ```