#弱引用 #引用 #稳定 #不稳定 #文档 #rc-t #弱-t

rc

在稳定 Rust 上运行并使用弱引用的 std::rc 的副本

2 个版本

使用旧的 Rust 2015

0.1.1 2015年7月29日
0.1.0 2015年7月27日

22#弱引用 中排名

Download history 55/week @ 2024-01-14 45/week @ 2024-01-21 22/week @ 2024-01-28 32/week @ 2024-02-04 54/week @ 2024-02-11 76/week @ 2024-02-18 64/week @ 2024-02-25 68/week @ 2024-03-03 76/week @ 2024-03-10 82/week @ 2024-03-17 86/week @ 2024-03-24 102/week @ 2024-03-31 55/week @ 2024-04-07 90/week @ 2024-04-14 73/week @ 2024-04-21 70/week @ 2024-04-28

每月下载 294

MIT/Apache

30KB
412 行代码(不包括注释)

rust-rc

std::rc 模块的副本,在稳定 Rust 上运行并使用 Weak 引用。

截至本文写作时,std::rc::Weak 被标记为 #[unstable],因此还不能在稳定 Rust 上使用。

为了使这个功能工作,必须删除一些功能

  • 不支持的类型 TRc<T>Weak<T>
  • #[unsafe_no_drop_flag] 未使用,因此(在当前的 Rust 中)Rc<T>Weak<T> 有一个释放标志,并且比一个单词大(64位平台为16字节)而不是一个。
  • NonZero 未使用,因此 Option<Rc<T>>Option<Weak<T>> 比原始的 Rc<T>Weak<T> 大一个单词(64位平台上总共24字节而不是8字节)。
  • std::intrinsics::assume 未使用,因此优化器可能无法删除那么多冗余检查。

支持稳定和不稳定 Rust

此软件包有一个 unstable Cargo 功能,它简单地导出 std::rc,因此上述所有缺点都不会出现。

如果您想使自己的代码同时支持稳定和不稳定 Rust,并在可用时获取大小优化,请按照以下方式使用此软件包

# Cargo.toml

[features]
unstable = ["rc/unstable"]

[dependencies]
rc = "0.1.1"
// lib.rs

#![cfg_attr(feature = "unstable", feature(rc_weak))]

extern crate rc;
// some_module.rs

use rc::{Rc, Weak};

无运行时依赖项

功能