Crate io_partition[][src]

This rust crate allow to take a part of an object that implement Read + Seek (typically a file), by specifying it's offset and lenght. It can also build similar item with an Arc<Mutex>, ensuring coherency of the pointer in the file, allowing to access the same file concurrently (althougth it isn't optimized for speed, as it have to unlock the Mutex and seek to the good position).

Examples

use std::io::{Cursor, Read};
use io_partition::Partition;
let file = Cursor::new(&[0, 2, 4, 6, 8, 10, 12]);

let mut sub_file = Partition::new(file, 2, 3).unwrap();
let mut buffer = [0, 0, 0, 0, 0];
assert_eq!(sub_file.read(&mut buffer).unwrap(), 3);
assert_eq!(buffer, [4, 6, 8, 0, 0]);

Structs

Partition

A Partition allow you to refer to a part of the file. It consume the input file.

PartitionMutex

A PartitionMutex allow you to refer to a part of the file. It consume the input file.

PartitionMutexLock

A locked PartitionMutex. See the documentation of PartitionMutex::lock for usage precaution.

Enums

LockPartitionError

An error that may occur by calling PartitionMutex::lock

Functions

clone_into_vec

Clone a part of a file into a Vec

partition_clone

Clone a part of a file