sectorize 0.1.0

A small library for writing arbitrarily-aligned data to sectored mediums
Documentation
  • Coverage
  • 0%
    0 out of 9 items documented0 out of 3 items with examples
  • Size
  • Source code size: 6.72 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 328.24 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 8s Average build duration of successful builds.
  • all releases: 8s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • scd31

sectorize

A basic library for writing data at an arbitrary address/length to a sectorized medium, like flash memory.

Usage

Here's how I'm using it. This is a snippet from a project I'm working on (and the motivation for writing this crate).

fn write_data(&mut self, start_addr: usize, buf: &[u8]) {
    for s in SectorizeIter::new(SECTOR_SIZE, start_addr, buf.len()) {
        let mut existing = self.read_slice(s.sector_index * SECTOR_SIZE);

        // only write if there's a difference
        if existing[s.sector_start..s.sector_end] != buf[s.input_start..s.input_end] {
            existing[s.sector_start..s.sector_end]
                .copy_from_slice(&buf[s.input_start..s.input_end]);
            self.write_sector(s.sector_index * SECTOR_SIZE, &existing);
        }
    }
}