2个不稳定版本
使用旧的Rust 2015
0.2.0 | 2018年11月14日 |
---|---|
0.1.0 | 2018年11月14日 |
#7 in #explicitly
3KB
Singleton Derive
这个库提供了一个方便的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!") }
);
}
}
贡献
这个库尚未完成,欢迎在问题或通过作者电子邮件提出改进建议。也欢迎PR。
依赖
~2.5MB
~50K SLoC