#singleton #derive #internal #macro #connect #explicitly #singletonum

singletonum-derive

singleton derive宏(这是一个内部库,您不需要显式连接它)

2个不稳定版本

使用旧的Rust 2015

0.2.0 2018年11月14日
0.1.0 2018年11月14日

#7 in #explicitly


用于singletonum

MIT许可证

3KB

Singleton Derive

Crates.io

文档

这个库提供了一个方便的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