cursor

template <typename T>
auto lager::make_constant(T &&v)
template <typename SensorFnT>
auto lager::make_sensor(SensorFnT &&fn)
template <typename T>
state<T> lager::make_state(T value)
template <typename T, typename TagT>
state<T, TagT> lager::make_state(T value, TagT)
template <typename UpdateT>
auto lager::update(UpdateT &&updater)

Returns a transducer for updating the parent values via a up-node. It processes the input with the function updater, passing to it a value or tuple containing the values of the parents of the node as first parameter, and the input as second. This mapping can thus return an updated version of the values in the parents with the new input.

Note
This transducer should only be used for the setter of output nodes.

template <typename… Cursors>
auto lager::with(Cursors&&... ins)

Returns a temporary object that can be used to describe transformations over the given set of cursors.

This temporary object has the methods zoom, xform and operator[] just like cursors, but returning a new temporary object each time these are applied, composing transformations along the way without creating new nodes.

This temporary object can be reified into an actual cursor, creating an associated node, by using the make method or by converting it to a cursor<T> type.

template <typename T>
class lager::constant

Inherits from lager::reader_base< detail::constant_node< T > >

template <typename DerivT>
struct lager::cursor_mixin

Inherits from lager::writer_mixin< DerivT >, lager::reader_mixin< DerivT >

Subclassed by lager::cursor_base< detail::cursor_node< T > >, lager::cursor_base< detail::state_node< T, TagT > >

template <typename NodeT>
class lager::cursor_base

Inherits from lager::cursor_mixin< cursor_base< NodeT > >, lager::xform_mixin< cursor_base< NodeT > >, lager::watchable_base< NodeT >

template <typename T>
class lager::cursor

Provides access to reading and writing values of type T.

Inherits from lager::cursor_base< detail::cursor_node< T > >

template <typename DerivT>
struct lager::reader_mixin

Subclassed by lager::cursor_mixin< cursor_base< NodeT > >, lager::cursor_mixin< DerivT >, lager::reader_base< detail::constant_node< T > >, lager::reader_base< detail::observable_reader_node< T > >, lager::reader_base< detail::sensor_node_base< T > >, lager::reader_base< detail::store_node_base< Action, Model > >

template <typename NodeT>
class lager::reader_base

Inherits from lager::reader_mixin< reader_base< NodeT > >, lager::xform_mixin< reader_base< NodeT > >, lager::watchable_base< NodeT >

Subclassed by lager::reader< model >

template <typename T>
class lager::reader

Provides access to reading values of type T.

Inherits from lager::reader_base< detail::observable_reader_node< T > >

template <typename T>
class lager::sensor

Inherits from lager::reader_base< detail::sensor_node_base< T > >

template <typename T, typename TagT = transactional_tag>
class lager::state

Inherits from lager::cursor_base< detail::state_node< T, TagT > >

template <typename Deriv>
struct lager::xform_mixin

Mixing to get common tranducers applied to this via the xform method.

Subclassed by lager::cursor_base< detail::cursor_node< T > >, lager::cursor_base< detail::state_node< T, TagT > >, lager::detail::with_expr_base< Deriv >, lager::reader_base< detail::constant_node< T > >, lager::reader_base< detail::observable_reader_node< T > >, lager::reader_base< detail::sensor_node_base< T > >, lager::reader_base< detail::store_node_base< Action, Model > >

template <typename DerivT>
struct lager::writer_mixin

Subclassed by lager::cursor_mixin< cursor_base< NodeT > >, lager::cursor_mixin< DerivT >

template <typename NodeT>
class lager::writer_base

Inherits from lager::writer_mixin< writer_base< NodeT > >, lager::xform_mixin< writer_base< NodeT > >

template <typename T>
class lager::writer

Provides access to writing values of type T.

Inherits from lager::writer_base< detail::cursor_node< T > >