1
2#[macro_use]
3extern crate cluStaticData;
4use cluStaticData::err::StaticErr;
5
6static_data! {
7 pub(crate) static ref TEST: TestValue = TestValue::Unk;
8}
9
10#[derive(Debug, Clone, Copy, PartialEq)]
11pub enum TestValue {
12 Unk,
13 RuntimeValue(usize),
14}
15
16fn main() {
17 assert_eq!(*TEST, TestValue::Unk);
18 println!("OK #1 {:?}", TEST);
19
20 let result = TEST.set(TestValue::RuntimeValue(10));
21 assert_eq!(result.is_ok(), true);
22 println!("OK #2 {:?}", TEST);
23
24 let result = TEST.set(TestValue::RuntimeValue(20));
25 assert_eq!(result.is_ok(), false);
26 assert_eq!(*TEST, TestValue::RuntimeValue(10));
27 println!("OK #3 {:?}", TEST);
28
29 let result = TEST.replace(TestValue::Unk);
30 assert_eq!(result, Err(StaticErr::prev(TestValue::Unk)));
31 println!("OK #4 {:?}", result);
32}