6个稳定版本
1.0.5 | 2024年4月5日 |
---|---|
1.0.3 | 2024年2月23日 |
#1647 在 Rust模式
每月394次下载
5KB
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
lib.rs
:
无缝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);
}
依赖关系
~290–740KB
~17K SLoC