3 个稳定版本
使用旧的 Rust 2015
1.0.2 | 2019年7月16日 |
---|---|
1.0.1 | 2019年6月22日 |
1.0.0 | 2019年6月19日 |
#10 在 #deref
被 ccl_owning_ref 使用
13KB
64 代码行数(不包括注释)
这是一个原始包的分支,以启用一些特定功能。如有疑问或请求,请联系我。
该包定义了一个不安全的标记特质 StableDeref,用于将容器类型引用到固定地址,即使包含类型被移动,这个地址也是有效的。例如,Box、Vec、Rc、Arc 和 String 实现了这个特质。此外,它还定义了 CloneStableDeref,用于像 Rc 这样的类型,其中克隆引用到相同的地址。
它旨在由如 owning_ref 和 rental 等包使用,以及希望使他们的代码与这些包互操作的库作者。例如,如果您编写了一个自定义 Vec 类型,您可以实现 StableDeref,然后用户将能够与 owning_ref 和 rental 一起使用您的自定义 Vec 类型。
可以通过禁用默认功能(特别是 "std")来启用 no_std 支持。在这种情况下,特质将不会为上述 std 类型实现,但您仍然可以使用它为自己的类型。
启用 "alloc" 功能(禁用默认功能)以使此特质在内置的 alloc
包中实现上述类型
alloc::boxed::Box
alloc::vec::Vec
alloc::rc::Rc
alloc::arc::Arc
alloc::string::String
例如,可以通过以下命令使用 alloc 支持构建此包:cargo build --no-default-features --features alloc
或者将其作为以下 Cargo.toml
依赖项添加
[dependencies.stable_deref_trait]
version = "<version>"
default-features = false
features = [ "alloc" ]
依赖项
~0.6–1MB
~14K SLoC