#static #macro #initialization #variables #sly-static

sly_static_macros

为sly_static提供的宏

6个稳定版本

1.0.5 2024年4月5日
1.0.3 2024年2月23日

#1625 in 过程宏

Download history 6/week @ 2024-07-06 1/week @ 2024-07-13

403 每月下载量
用于 sly_static

MIT 许可证

6KB
95

sls静态

无缝Rust静态初始化:简单高效

这是什么?

此crate允许您在main函数内轻松(自动)初始化静态变量。

它是如何工作的?

使用linkme crate收集所有静态变量并在main函数内初始化它们。它使用ctor的一些代码来初始化静态变量。

警告

它使用不安全代码来初始化静态变量,但除非您对其进行一些奇怪的操作,否则它是安全的。

我说它是安全的,因为所有静态变量都在main函数内初始化,因此无法在初始化之前访问它们。

示例

use sly_static::sly_static;
use sly_static::sly_main;

#[sly_static]
static MY_STATIC: String = String::from("Hello, World!");

#[sly_main]
fn main() {
    println!("{}", *MY_STATIC);
}

许可证:MIT

依赖项

~270–720KB
~17K SLoC