cluStaticData 1.2.0

Initializers of static values. Manual initialization, automatic initialization.
Documentation

use std::fmt::Debug;

#[macro_use]
extern crate cluStaticData;

static_data! {
	pub(crate) static ref TEST: &'static dyn MyTrait = &();
}

pub trait MyTrait: Debug + Sync {
	fn is_true(&self) -> bool {
		false
	}
}

impl MyTrait for () {
	
}

impl MyTrait for usize {
	#[inline]
	fn is_true(&self) -> bool {
		self > &0
	}
}

fn main() {
	assert_eq!(TEST.is_true(), false);
	println!("OK #0 {:?}", TEST);
	
	let err = TEST.set(&10);
	assert_eq!(TEST.is_true(), true);
	println!("OK #1 {:?}, result: {:?}", TEST, err);
}