#io-error #io #error #file-io #stdio #std #fs-file

io-extra

用于扩展std::io::Error的特质,提供各种std::io::ErrorKind的简写构造函数。

3个版本 (破坏性)

0.3.0 2024年4月12日
0.2.0 2024年4月11日
0.1.0 2023年12月7日

#1373 in Rust模式

Download history 228/week @ 2024-04-07 20/week @ 2024-04-14 3/week @ 2024-05-19

每月108次下载
tracing-configuration中使用

MIT/Apache

9KB
140

用于扩展io::Error的特质,提供各种io::ErrorKind的简写构造函数,以及一个[context()]方法。

use std::{fs::File, io::{self, Write as _}, str};
use io_extra::{IoErrorExt as _, context, with};

fn write_log(contents: &[u8], mut file: File) -> io::Result<()> {
    if let Err(e) = str::from_utf8(contents) {
        return Err(io::Error::invalid_input("`contents` was not UTF-8"))
                           // ^ shorthand constructor
    }
    file.write_all(contents).map_err(with("couldn't write file"))
                                  // ^ easily add context
}

lib.rs:

用于扩展io::Error的特质,提供各种io::ErrorKind的简写构造函数,以及一个[context()]方法。

use std::{fs::File, io::{self, Write as _}, str};
use io_extra::{IoErrorExt as _, context, with};

fn write_log(contents: &[u8], mut file: File) -> io::Result<()> {
    if let Err(e) = str::from_utf8(contents) {
        return Err(io::Error::invalid_input("`contents` was not UTF-8"))
                           // ^ shorthand constructor
    }
    file.write_all(contents).map_err(with("couldn't write file"))
                                  // ^ easily add context
}

无运行时依赖