3个版本 (破坏性)
0.3.0 | 2024年4月12日 |
---|---|
0.2.0 | 2024年4月11日 |
0.1.0 | 2023年12月7日 |
#1373 in Rust模式
每月108次下载
在tracing-configuration中使用
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
}