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));
}