Crates.io | file-region |
lib.rs | file-region |
version | 0.1.0 |
source | src |
created_at | 2024-09-12 12:44:11.197283 |
updated_at | 2024-09-12 12:44:11.197283 |
description | Encapsulates a contiguous byte range of a file |
homepage | |
repository | https://github.com/xpe/file-region |
max_upload_size | |
id | 1372732 |
size | 13,401 |
This crate provides a FileRegion
type which encapsulates a particular region of a File
.
You can find this example at examples/basic.rs
and run it with cargo run --example basic
.
use file_region::FileRegion;
use std::io::{Read, Seek, SeekFrom, Write};
use tempfile::tempfile;
fn main() -> std::io::Result<()> {
let mut file = tempfile()?;
file.write_all(b"Hello, FileRegion.")?;
let mut region = FileRegion::new(&file, 7..16);
let mut buffer = [0; 9];
region.read(0, &mut buffer)?;
assert_eq!(&buffer, b"FileRegio");
region.write(0, b"01234")?;
let mut content = String::new();
file.seek(SeekFrom::Start(0))?;
file.read_to_string(&mut content)?;
assert_eq!(content, "Hello, 01234egion.");
Ok(())
}