Emit a non-blocking molecule.
Emit a non-blocking molecule.
Note that static molecules can be emitted only by a reaction that consumed them, and not by other code.
Value to be put onto the emitted molecule.
Check whether the molecule is already bound to a reaction site.
Check whether the molecule is already bound to a reaction site. Note that molecules can be emitted only if they are bound.
true
if already bound, false
otherwise.
Check whether the molecule has been automatically pipelined.
Check whether the molecule has been automatically pipelined.
This is a def
because we will only know whether this molecule is static after this molecule is bound to a reaction site, at run time.
This is a def
because we will only know whether this molecule is static after this molecule is bound to a reaction site, at run time.
This will be overridden by the M class (only non-blocking molecules can be static).
Name of the molecule, used for debugging only.
Name of the molecule, used for debugging only.
Prints a molecule's displayed name and a /B
suffix for blocking molecules.
Prints a molecule's displayed name and a /B
suffix for blocking molecules.
A molecule's displayed name as string.
The type symbol corresponding to the value type of the molecule.
The type symbol corresponding to the value type of the molecule.
For instance, a molcule emitter defined as val f = b[Int, String]
has type symbol 'Int
.
A symbol representing the type, such as 'Unit
, 'Int
etc.
Volatile reader for a molecule.
Volatile reader for a molecule. The molecule must be declared as static.
The value carried by the static molecule when it was last emitted. Will throw exception if the static molecule has not yet been emitted.
Non-blocking molecule class. Instance is mutable until the molecule is bound to a reaction site and until all reactions involving this molecule are declared.
Type of the value carried by the molecule.