1 个不稳定版本
使用旧的 Rust 2015
0.0.1 | 2015年5月10日 |
---|
#93 in #drop
20KB
378 代码行,不包括注释
Humpty Dumpty
此库的目标是能够定义只能在受控情况下隐式丢弃的类型。
设计草案可以在这里找到 here。该设计尚未处理分支,尽管可以扩展以实现这一点。它也与最终实现略有不同。
想法是,对于被标记为 #[drop_protection]
的类型,只有带有 #[allowed_on_protected]
注解的函数可以使用它们,并且每个局部变量 必须 在其作用域结束时通过带有 #[allowed_drop]
标记的函数来丢弃。
当前状态:能够跟踪此类类型并报告其使用情况。维护一个记录已正确丢弃内容的列表,以检测隐式丢弃。
一些缺失但计划中的功能
- 尚不能处理条件丢弃,即在分支中。
- 尚不能处理任何除 let 绑定以外的绑定
- 允许的函数尚不能接受 &/&mut 输入
- 尚不能将方法调用标记为允许
要测试,请运行 cargo run --example test
,或者更好的是 rustc examples/test.rs -L target
(在构建后)。后者更好,因为它会在每次运行时重新构建,而我们只对构建输出感兴趣。