2个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2018年11月14日 |
---|---|
0.1.0 | 2018年11月14日 |
在#singleton中排名第36
2KB
单例 Derive
此crate提供了一种方便的API,只需使用struct
的#[derive(Singleton)]
即可将任何结构体转换为单例。
示例
extern crate singletonum;
use singletonum::{Singleton, SingletonInit};
#[derive(Debug, PartialEq, Singleton)]
struct SampleSingleton {
inner: String,
}
impl SingletonInit for SampleSingleton {
type Init = String;
fn init(init: &String) -> Self {
SampleSingleton { inner: init.clone() }
}
}
#[cfg(test)]
mod tests {
use super::{SampleSingleton, Singleton};
#[test]
fn initialize_and_get() {
SampleSingleton::get_instance(&String::from("hello, world!"));
let instance = SampleSingleton::get_instance(&String::from("hello, world!"));
assert_eq!(
instance,
&SampleSingleton { inner: String::from("hello, world!") }
);
}
}
贡献
此crate尚未完成,欢迎在issue或作者邮箱中提出改进建议。也欢迎PR。
依赖项
~4MB
~74K SLoC