9 个版本
0.1.6 | 2023年7月27日 |
---|---|
0.1.5 | 2023年3月4日 |
0.1.3 | 2023年2月24日 |
0.1.1 | 2022年10月17日 |
0.0.2 | 2022年9月25日 |
在 开发工具 中排名第 164
每月下载量 246,504
在 806 个 包中使用(直接使用4个)
38KB
705 行(不包括注释)
impl-more
简洁的特质实现。
用法
struct MyNewTypeStruct(String);
impl_more::impl_as_ref!(MyNewTypeStruct => String);
impl_more::impl_as_mut!(MyNewTypeStruct => String);
impl_more::impl_deref!(MyNewTypeStruct => String);
impl_more::impl_deref_mut!(MyNewTypeStruct);
// or, to deref through String too:
// impl_more::forward_deref_and_mut!(MyNewTypeStruct, ref str);
impl_more::impl_from!(String => MyNewTypeStruct);
impl_more::impl_into!(MyNewTypeStruct => String);
enum MyEnum {
Bar,
Qux,
}
impl_more::impl_display_enum!(MyEnum, Bar => "bar", Qux => "qux");
enum Coords {
Xy(i64, i64),
Xyz(i64, i64, i64),
}
impl_more::impl_display_enum!(
Coords,
Xy(x, y) => "{x}, {y}",
Xyz(x, y, z) => "{x}, {y}, {z}",
);
#[derive(Debug)]
struct MyError(eyre::Report);
impl_more::forward_display!(MyError);
impl_more::forward_error!(MyError);
let err = MyError(eyre::eyre!("something went wrong"));
assert_eq!(err.source().unwrap().to_string(), "something went wrong");
#[derive(Debug)]
enum Err {
Io(std::io::Error),
Generic(String),
}
impl_more::impl_display_enum!(Err, Io(err) => "{err}", Generic(msg) => "{msg}");
impl_more::impl_error_enum!(Err, Io(err) => err);