positioned-io

Crates.iopositioned-io
lib.rspositioned-io
version0.3.3
sourcesrc
created_at2016-07-06 16:46:58.325227
updated_at2023-11-01 19:19:14.596885
descriptionReading and writing at an offset
homepage
repositoryhttps://github.com/vasi/positioned-io
max_upload_size
id5597
size1,068,543
positioned-io (github:positioned-io:positioned-io)

documentation

README

positioned-io

This crate allows you to specify an offset for reads and writes, without changing the current position in a file. This is similar to pread() and pwrite() in C.

The major advantages of this type of I/O are:

  • You don't need to seek before doing a random-access read or write, which is convenient.
  • Reads don't modify the file at all, so don't require mutability.

Crates.io Documentation

Example

Read the fifth 512-byte sector of a file:

use std::fs::File;
use positioned_io::ReadAt;

// note that file does not need to be mut
let file = File::open("tests/pi.txt")?;

// read up to 512 bytes
let mut buf = [0; 512];
let bytes_read = file.read_at(2048, &mut buf)?;

Note: If possible use the RandomAccessFile wrapper. On Windows ReadAt directly on File is very slow.

Documentation

https://docs.rs/positioned-io

License

positioned-io is licensed under the MIT license.

Commit count: 154

cargo fmt