18 个版本 (7 个稳定版)
1.1.3 | 2024 年 1 月 27 日 |
---|---|
1.1.1 | 2023 年 6 月 29 日 |
1.1.0 | 2023 年 3 月 26 日 |
1.0.2 | 2022 年 12 月 10 日 |
0.1.3 | 2019 年 3 月 4 日 |
#698 在 Rust 模式
每月 48,858 次下载
在 121 个包中使用 (3 个直接使用)
14KB
86 行
io-enum
#[derive(Read, Write, Seek, BufRead)] for 枚举。
使用方法
将此添加到您的 Cargo.toml
[dependencies]
io-enum = "1"
编译器支持:需要 rustc 1.56+
示例
use std::{
fs::File,
io::{self, Write},
path::Path,
};
use io_enum::*;
#[derive(Read, Write, Seek, BufRead)]
enum Either<A, B> {
A(A),
B(B),
}
fn func(path: Option<&Path>) -> impl Write {
if let Some(path) = path {
Either::A(File::open(path).unwrap())
} else {
Either::B(io::stdout())
}
}
查看 auto_enums 包以了解如何自动化此类模式。
支持的特质
相关项目
- auto_enums: 允许通过自动生成枚举来允许多个返回类型的库。
- derive_utils: 枚举派生宏的进程宏助手,便于编写。
- iter-enum: #[derive(Iterator, DoubleEndedIterator, ExactSizeIterator, FusedIterator, Extend)] for 枚举。
许可证
根据您的选择,受 Apache License, Version 2.0 或 MIT 许可证的约束。
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在工作中的任何贡献,将按上述方式双重许可,而无需任何附加条款或条件。
依赖项
~315–770KB
~18K SLoC