Macro v11::property [−][src]
macro_rules! property { ( $(#[$ATTR:meta])* static $DOMAIN:ident/$NAME:ident: $TYPE:ty ) => { ... }; ( $(#[$ATTR:meta])* pub static $DOMAIN:ident/$NAME:ident: $TYPE:ty ) => { ... }; ( $(#[$ATTR:meta])* static $DOMAIN:ident/$NAME:ident: $TYPE:ty = $INIT:expr; ) => { ... }; ( $(#[$ATTR:meta])* pub static $DOMAIN:ident/$NAME:ident: $TYPE:ty = $INIT:expr; ) => { ... }; (@mod $DOMAIN:ident/$NAME:ident: $TYPE:ty = $INIT:expr;) => { ... }; }
Generates a property, which is a singleton value accessed via the Universe
.
Usage
domain! { EXAMPLE_DOMAIN } property! { static EXAMPLE_DOMAIN/THING: i32 } property! { static EXAMPLE_DOMAIN/NON_DEFAULT: i32 = 42; } fn main() { EXAMPLE_DOMAIN.register(); THING.register(); let universe = v11::Universe::new(&[EXAMPLE_DOMAIN]); { let mut val = universe[THING].write().unwrap(); *val = 90; } assert_eq!(90, universe.get(THING)); }