#traits #stable #rc #deref #marker #box #type

no-std stable_deref_trait

一个不安全的标记特质,用于像 Box 和 Rc 这样的类型,即使被移动也能指向稳定的地址,因此可以与 owning_ref 和 rental 等库一起使用。

4 个稳定版本

使用旧 Rust 2015

1.2.0 2020年7月13日
1.1.1 2018年8月2日
1.1.0 2018年6月9日
1.0.0 2017年3月9日

内存管理 类别中排名 #33

Download history 630251/week @ 2024-03-14 647656/week @ 2024-03-21 637549/week @ 2024-03-28 621442/week @ 2024-04-04 643142/week @ 2024-04-11 634837/week @ 2024-04-18 581307/week @ 2024-04-25 585851/week @ 2024-05-02 601798/week @ 2024-05-09 634500/week @ 2024-05-16 617659/week @ 2024-05-23 691250/week @ 2024-05-30 830999/week @ 2024-06-06 1017737/week @ 2024-06-13 791383/week @ 2024-06-20 635323/week @ 2024-06-27

每月下载量 3,407,744
用于 5,427 个 Crates (87 个直接使用)

MIT/Apache 许可

12KB
56

此包定义了一个不安全的标记特质 StableDeref,用于那些即使包含类型被移动,也指向固定地址的容器类型。例如,Box、Vec、Rc、Arc 和 String 都实现了此特质。此外,它还定义了 CloneStableDeref,用于像 Rc 这样的类型,其克隆指向相同的地址。

它旨在由诸如 owning_refrental 这样的包使用,以及希望使他们的代码与这类包互操作的库作者。例如,如果您编写了一个自定义的 Vec 类型,您可以实现 StableDeref,然后用户就可以将您的自定义 Vec 类型与 owning_ref 和 rental 一起使用。

可以通过禁用默认特性(特别是 "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" ]

没有运行时依赖

特性