1 个不稳定版本
0.1.0 | 2023 年 3 月 13 日 |
---|
#1290 在 过程宏
9KB
127 行
派生 Clone 包括 clone_from
这个包提供了一个名为 CloneFrom
的派生宏,用于派生具有专用 clone_from
实现的 Clone
。
当派生 Clone
时,Rust 会省略专用的 clone_from
实现并默认使用 clone
。这意味着它可能会表现出反直觉的行为,例如当应该重用分配时,但实际上并没有。这个包旨在作为派生 Clone
的替代品,但具有正确的 clone_from
实现。
示例
#[derive(CloneFrom)]
struct MyStruct<T> {
name: String,
inner: Vec<T>,
}
注意事项
将 clone_from
实现添加到 Rust 中所有类型似乎会增加显著的编译时间成本,这就是为什么 Rust 默认不提供此功能。许多类型并不受益于专用的 clone_from
实现因此,只有当它带来好处时才重要。
许可证
许可协议为 Apache License, Version 2.0 或 MIT 许可证,任选其一。
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交给此包的任何贡献,均应按照上述方式双许可,而不附加任何额外的条款或条件。
依赖项
~1.5MB
~35K SLoC