#clone #derive #specialized

clone_from

派生 Clone 包含 clone_from

1 个不稳定版本

0.1.0 2023 年 3 月 13 日

#1290过程宏

Apache-2.0 OR MIT

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.0MIT 许可证,任选其一。

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交给此包的任何贡献,均应按照上述方式双许可,而不附加任何额外的条款或条件。

依赖项

~1.5MB
~35K SLoC