2 个版本
使用旧的 Rust 2015
0.1.1 | 2015年7月29日 |
---|---|
0.1.0 | 2015年7月27日 |
22 在 #弱引用 中排名
每月下载 294 次
30KB
412 行代码(不包括注释)
rust-rc
std::rc 模块的副本,在稳定 Rust 上运行并使用 Weak
引用。
截至本文写作时,std::rc::Weak
被标记为 #[unstable]
,因此还不能在稳定 Rust 上使用。
为了使这个功能工作,必须删除一些功能
- 不支持的类型
T
在Rc<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};