#io #optional #file-exists #error #fs-file #handle #tell

已废弃 io-result-optional

为 io::Result 提供一个 optional() 方法

3 个版本

0.1.3 2022年2月2日
0.1.2 2019年1月12日
0.1.1 2019年1月11日
0.1.0 2019年1月11日

14 in #tell

MIT 许可协议

6KB

IoResultOptional

这是一个为 io::Result 添加方法的 trait,使得在文件不存在和其他错误之间的区分变得容易,因为通常的处理方法是如果文件存在则处理。

docs Build Status

if let Some(input) = File::open("data").optional()? {
    // The data exists, so handle it ...
    // If it doesn't exist, it is just ignored
    // If there is another error, this function returns it.
}

lib.rs:

提供了一个为 std::io::Result 添加方法的 trait,使得在文件不存在和其他错误之间的区分变得容易,因为通常的处理方法是如果文件存在则处理。

示例

use io_result_optional::IoResultOptional;
use std::fs::File;

let config = File::open(".app.rc")
    .optional()?
    .map(readconfig)
    .unwrap_or_default();
use io_result_optional::IoResultOptional;
use std::fs::File;

if let Some(input) = File::open("data").optional()? {
    // The data exists, so handle it ...
    // If it doesn't exist, it is just ignored
    // If there is another error, this function returns it.
}

无运行时依赖