显示软件包…
3 个版本 (稳定)
1.1.3 | 2021 年 5 月 29 日 |
---|---|
1.1.2 | 2021 年 3 月 3 日 |
0.0.0 | 2021 年 3 月 3 日 |
#52 在 #statically
657 每月下载次数
在 149 个软件包中使用(通过 外部性)
16KB
315 行
Testy Environ - 一种环境形式,可以设置可以静态访问的作用域有限值
.摘要 [来源,toml]
include::Cargo.toml[lines=2..5]
.描述
include::src/lib.rs[tag=description]
lib.rs
:
安全的全局对堆变量的引用。
使用 environ! 宏设置全局引用,并为其指定名称和类型。使用其名称下作用域内的 using
函数来命名引用并调用一个不接受任何参数但可以通过 with
函数访问该引用的函数。
示例
#[macro_use] extern crate environ;
// create a place for the global reference to exist.
environ!(counter: u32);
fn stuff() {
// do some stuff, accessing the named reference as desired.
counter::with(|i| *i += 1);
}
fn main() {
// declare a stack variable of the same type as our global declaration.
let mut counter_value = 41u32;
// call stuff, setting up our `counter` environment as a reference to our counter_value var.
counter::using(&mut counter_value, stuff);
println!("The answer is {:?}", counter_value); // will print 42!
stuff(); // safe! doesn't do anything.
}