#io #seek #read #file #part #allowing #partition

io_partition

允许仅使用 Read + Seek 对象的一部分的库

4 个稳定版本

1.1.1 2021年2月11日
1.0.1 2021年2月9日
1.0.0 2020年3月9日

602并发

Download history 162/week @ 2024-03-13 120/week @ 2024-03-20 701/week @ 2024-03-27 310/week @ 2024-04-03 147/week @ 2024-04-10 150/week @ 2024-04-17 71/week @ 2024-04-24 71/week @ 2024-05-01 291/week @ 2024-05-08 138/week @ 2024-05-15 115/week @ 2024-05-22 215/week @ 2024-05-29 60/week @ 2024-06-05 251/week @ 2024-06-12 205/week @ 2024-06-19 180/week @ 2024-06-26

701 每月下载量
13 个 Crates 中使用 (4 直接使用)

CC0 许可证

21KB
366

io_partition

此 Rust crate 允许通过指定偏移量和长度来获取实现了 Read + Seek(通常是文件)的对象的一部分。它还可以使用 Arc构建类似的项目,确保文件中指针的一致性,允许并发访问同一文件(尽管它没有针对速度进行优化,因为它需要解锁 Mutex 并定位到正确位置)。

但是,此互斥锁可以锁定以进行单线程访问,从而提供接近原生性能。


lib.rs:

此 Rust crate 允许通过指定偏移量和长度来获取实现了 Read + Seek(通常是文件)的对象的一部分。它还可以使用 Arc构建类似的项目,确保文件中指针的一致性,允许并发访问同一文件(尽管它没有针对速度进行优化,因为它需要解锁 Mutex 并定位到正确位置)。

示例

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]);

依赖关系

~305–770KB
~18K SLoC