15 个版本
使用旧的 Rust 2015
0.4.6 | 2018 年 10 月 9 日 |
---|---|
0.4.4 | 2018 年 7 月 13 日 |
0.4.1 | 2018 年 2 月 7 日 |
0.4.0 | 2017 年 4 月 21 日 |
0.1.5 | 2016 年 7 月 21 日 |
#1160 在 Rust 模式
26 每月下载量
62KB
1K SLoC
overflower
该项目包含一个编译器插件和支持库,允许程序员注解其代码以声明如何处理整数溢出。
用法
注意:此功能需要 nightly 编译器,因为支持库使用了当前不稳定的专业化。
要使用它,您需要在 Cargo.toml 中添加以下内容
[dependencies]
overflower = "0.4.6"
overflower_support = "0.1.5"
您也可以将其作为可选依赖项添加(代码省略)。
接下来,在您的 crate 根目录中,您需要添加
#![feature(plugin)]
#![plugin(overflower)]
extern crate overflower_support;
// Now you can annotate items (up to and including the whole crate)
#[overflow(panic)]
fn panic_on_overflow() { .. }
#[overflow(wrap)]
fn like_you_just_dont_care() { .. }
#[overflow(saturate)]
fn too_much_sunlight() {
#[overflow(default)]
fn but_use_standard_ops_here() { .. }
..
}
如果是可选依赖项,则添加以下内容(代码省略)。
#![cfg_attr(feature="overflower", feature(plugin))]
#![cfg_attr(feature="overflower", plugin(overflower))]
#[cfg(feature="overflower")
extern crate overflower_support;
// as well as the following instead of e.g. `#[overflow(wrap)]`
#[cfg_attr(feature="overflower", overflow(wrap))];
这是一个正在进行中的项目,但大多数功能应该已经可用。
许可:Apache 2.0