Macro adapton::cell
[−]
[src]
macro_rules! cell { ( $value:expr ) => { ... }; ( [ $nm:expr ] ? $value:expr ) => { ... }; ( [ $nm:ident ] $value:expr ) => { ... }; }
Convenience wrapper for engine::cell
Global counter version:
Uses a global counter to choose a unique name. Important note: This may be appopriate for the Editor role, but is never appropriate for the Archivist role.
let c = cell!( 123 ); assert_eq!( get!(c), 123 ); assert_eq!( get!(c), force(&c) );
Explicit-names version:
In this verion, use [ name ]
to specify the cell's name is name
:
let c = cell!([c] 123); assert_eq!(get!(c), 123); assert_eq!(get!(c), force(&c));
Optional-name version
In this verion, in this version, supply an expression optional_name
of type Option<Name>
to specify the name for the cell, created by
either cell
or put
, in the case that optional_name
is
Some(name)
or None
, respectively:
let n = name_of_str(stringify!(c)); let c = cell!([Some(n)]? 123); assert_eq!(get!(c), 123); assert_eq!(get!(c), force(&c)); let c = cell!([None]? 123); assert_eq!(get!(c), 123); assert_eq!(get!(c), force(&c));