20 个版本
0.5.0 | 2024 年 7 月 12 日 |
---|---|
0.4.9 | 2024 年 2 月 21 日 |
0.4.8 | 2023 年 11 月 19 日 |
0.4.0 | 2023 年 7 月 29 日 |
0.3.2 | 2022 年 7 月 12 日 |
157 在 Rust 模式 中排名
每月 33,551 次下载
用于 154 个 crate(直接使用 11 个)
59KB
1K SLoC
隐式克隆
此库引入了标记 trait ImplicitClone
,用于成本低廉且应允许隐式克隆的类型。它使得使用此 crate 的宿主库能够拥有 Copy
的语法,而实际上调用的是 Clone
的实现(通常在宏中执行此语法时)。
思路是,你必须在你成本低廉的类型上实现此 trait,然后使用该 trait 的宿主库将允许用户传递你的类型值,它们将自动进行克隆。
隐式克隆已实现的标准类型
std::rc::Rc
std::sync::Arc
- 包含 1-12 个元素的元组,所有这些元素也是
ImplicitClone
Option
,其中内部值为ImplicitClone
- 一些内置的
Copy
类型,如()
、bool
、&T
等。
此 crate 属于 rust-patterns
类别,但实际上这是一个 Rust 反模式。在 Rust 中,用户应始终自己处理借用和所有权。尽管如此,有时这种模式是所需的。例如,依赖于从祖先传播属性到多个子代的 UI 框架将始终需要使用 Rc
类型来低成本且简洁地更新每个子组件。这在类似 React 的框架(如 Yew)中就是这样。
此crate还提供了一些方便的不可变类型来处理易于复制的字符串、数组和映射,您可以在模块 sync
和 unsync
中找到它们。这些类型实现了 ImplicitClone
并只包含实现 ImplicitClone
的类型。 一个显著的特性:对这些类型的迭代产生项的副本而不是引用。 这在使用类似React的框架时特别有用。
依赖项
~0–335KB