当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust BufWriter.into_parts用法及代码示例


本文简要介绍rust语言中 std::io::BufWriter.into_parts 的用法。

用法

pub fn into_parts(self) -> (W, Result<Vec<u8>, WriterPanicked>)

反汇编此 BufWriter<W> ,返回底层编写器以及任何缓冲但未写入的数据。

如果底层写入器出现Panics,则不知道写入了数据的哪一部分。在这种情况下,我们为缓冲数据返回WriterPanicked(仍然可以从中恢复缓冲区内容)。

into_parts 不会尝试刷新数据并且不会失败。

例子

use std::io::{BufWriter, Write};

let mut buffer = [0u8; 10];
let mut stream = BufWriter::new(buffer.as_mut());
write!(stream, "too much data").unwrap();
stream.flush().expect_err("it doesn't fit");
let (recovered_writer, buffered_data) = stream.into_parts();
assert_eq!(recovered_writer.len(), 0);
assert_eq!(&buffered_data.unwrap(), b"ata");

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::io::BufWriter.into_parts。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。