#statically #values #accessed #global #stack #reference #scope-limited

no-std environ

设置作用域有限的值可以静态访问

显示软件包…

3 个版本 (稳定)

1.1.3 2021 年 5 月 29 日
1.1.2 2021 年 3 月 3 日
0.0.0 2021 年 3 月 3 日

#52#statically

Download history 233/week @ 2024-04-05 264/week @ 2024-04-12 281/week @ 2024-04-19 287/week @ 2024-04-26 226/week @ 2024-05-03 216/week @ 2024-05-10 233/week @ 2024-05-17 210/week @ 2024-05-24 188/week @ 2024-05-31 140/week @ 2024-06-07 218/week @ 2024-06-14 272/week @ 2024-06-21 107/week @ 2024-06-28 94/week @ 2024-07-05 216/week @ 2024-07-12 235/week @ 2024-07-19

657 每月下载次数
149 个软件包中使用(通过 外部性

Apache-2.0

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.
}

无运行时依赖

功能