#io-write #io #io-read #file #read-write #file-offset #overlay

slice

为实现 std::io::readstd::io::write 的流实现提供切片。

4 个版本

使用旧的 Rust 2015

0.0.4 2018 年 8 月 7 日
0.0.3 2018 年 4 月 2 日
0.0.2 2017 年 8 月 14 日
0.0.1 2017 年 4 月 27 日

#1491 in 文件系统


2 个 Crates 中使用(通过 posy

MIT/Apache

11KB
134

slice.

创建 io 对象的切片 std::io::Readstd::io::Write.

如果你有一个文件(或任何其他对象),你可以创建它的某个子集的切片(或视图)。

IoSlice 实现了 std::io::Readstd::io::Write,当源实现这些接口时(如果源只实现一个,则只实现一个)。

示例用法。

use { std::fs::File, slice::IoSlice };


let source = File::open("/home/annie/data.png")?;
let start  = 10;
let length = 1000;


// create a slice into `home/annie/data.png`, consisting of bytes [10 .. 10 + 1000]
// of that file.
//
// `slice` impls both `std::io::Read` and `std::io::Write` because `source`
// does too.
let slice = IoSlice::new(source, start, length);


// use like any other `std::io::Read` or `std::io::Write`:
//
//     slice.read_to_string(...)?;
//     slice.read_exact(...)?;
//     slice.write_all(...)?;
//
//     writeln!(slice, "hello {}", name)?;
//

lib.rs:

创建 IO 对象的切片 - std::io::Readstd::io::Write.

如果你有一个文件(或任何其他对象),你可以创建它的某个子集的切片(或视图)。

IoSlice 实现了 std::io::Readstd::io::Write,当源实现这些接口时(如果源只实现一个,则只实现一个)。

示例用法。

use { std::fs::File, slice::IoSlice };


let source = File::open("/home/annie/data.png")?;
let start  = 10;
let length = 1000;


// create a slice into `home/annie/data.png`, consisting of bytes [10 .. 10 + 1000]
// of that file.
//
// `slice` impls both `std::io::Read` and `std::io::Write` because `source`
// does too.
let slice = IoSlice::new(source, start, length);


// use like any other `std::io::Read` or `std::io::Write`:
//
//     slice.read_to_string(...)?;
//     slice.read_exact(...)?;
//     slice.write_all(...)?;
//
//     writeln!(slice, "hello {}", name)?;
//

无运行时依赖