2 个版本
0.1.1 | 2023 年 8 月 2 日 |
---|---|
0.1.0 | 2023 年 7 月 31 日 |
#1066 in 进程宏
12KB
202 行
免责声明
我对 Rust 很是新手,对发布 Crates 更加陌生,因此这个 Crates 应谨慎使用,欢迎反馈 :-)
cloneable_dyn
使用这个 Crates,您可以使您的 trait 可克隆,您的结构体/枚举根据给定的可克隆 trait 可克隆,并从您的 trait 的 dyn 对象中派生出结构体/枚举的 clone。通过附加属性 #[dyn_cloneable] 使 trait 可克隆。这将生成一个包含函数 fn clone_dyn(&self) -> Box<dyn #trait_ident>
的超trait。这里有一个例子
use cloneable_dyn::dyn_cloneable;
#[dyn_cloneable]
trait TestTrait {}
// will generate
// pub trait __TestTrait__DynCloneAutoDerive__ {
// fn clone_dyn(&self) -> Box<dyn TestTrait>;
// }
// and make it a supertrait of TestTrait
lib.rs
:
免责声明
我对 Rust 很是新手,对发布 Crates 更加陌生,因此这个 Crates 应谨慎使用,欢迎反馈 :-)
cloneable_dyn
使用这个 Crates,您可以使您的 trait 可克隆,您的结构体/枚举根据给定的可克隆 trait 可克隆,并从您的 trait 的 dyn 对象中派生出结构体/枚举的 clone。
通过附加属性 #[dyn_cloneable] 使 trait 可克隆。这将生成一个包含函数 fn clone_dyn(&self) -> Box<dyn #trait_ident>
的超trait。这里有一个例子
use cloneable_dyn::dyn_cloneable;
#[dyn_cloneable]
trait TestTrait {}
// will generate
// pub trait __TestTrait__DynCloneAutoDerive__ {
// fn clone_dyn(&self) -> Box<dyn TestTrait>;
// }
// and make it a supertrait of TestTrait
依赖项
~260–700KB
~17K SLoC