1 个稳定版本
使用旧的 Rust 2015
1.0.0 | 2016年5月6日 |
---|
#62 in #smart
10KB
232 行
scell
一个用于 Rust 的智能单元,允许通过禁用运行时检查的借用来实现功能门控,并提供一个简单的接口
该软件包的目的是允许在代码中使用 Rc<RefCell<T>>
,在完成足够的测试后,可以启用 unchecked
功能,这将把 SCell 转换为 Rc<UnsafeCell<T>>
。
SCell 提供了 Rc<RefCell<T>>
组合通常允许的所有功能以及更多,例如 PartialOrd
和 Ord
的实现。
如果您计划在 debug
模式下进行大量测试,请将此软件包中的 unchecked
功能添加到 release
模式。否则,最好在 debug
模式下启用优化,以便可以在 debug
模式下进行测试,或者为优化后的二进制文件创建一个新的配置文件,这些二进制文件仍然进行 RefCell 提供的运行时检查。一旦您完成了测试,使用启用此软件包 unchecked
功能的编译模式,它将从 RefCell
中删除开销,但不会从 Rc
中删除,因为它仍然需要知道何时 drop()
值。
或者,您也可以放心地将此软件包用于图、网格和其他具有大量互连性的常规数据结构中的正常使用,在这些数据结构中,借用检查者无法提供帮助。稍后,如果您的代码运行良好,并且您需要从 RefCell
中恢复性能,只需使用 unchecked
功能,您的代码就可以正常运行。