14#include <functional_dag/dag_interface.hpp>
20template <
typename Out>
23 function<unique_ptr<Out>()> m_generator;
28 __dag_source(function<unique_ptr<Out>()> _generator)
29 : m_generator(_generator) {}
37 unique_ptr<Out> update() {
return m_generator(); };
42template <
typename In,
typename Out>
43class __dag_node :
public dag_node<In, Out> {
45 function<unique_ptr<Out>(
const In *
const)>
51 __dag_node(function<unique_ptr<Out>(
const In *
const)> _update)
52 : m_update(_update) {}
61 unique_ptr<Out> update(
const In *
const _data) {
return m_update(_data); };
74template <
typename Out>
76 return new __dag_source(_run_fn);
90template <
typename In,
typename Out>
92 return new __dag_node(_run_fn);
Interface for all external "mapping" lambdas.
Definition dag_interface.hpp:42
Interface for all external generator lambdas.
Definition dag_interface.hpp:22
Definition guid_generated.h:16
dag_node< In, Out > * fn_call(function< unique_ptr< Out >(const In *const)> _run_fn)
A wrapper function that constructs a mapping wrapper for your mapping function.
Definition fn_dag_interface.hpp:91
dag_source< Out > * fn_source(function< unique_ptr< Out >()> _run_fn)
A wrapper function that constructs a generator wrapper for your generator function.
Definition fn_dag_interface.hpp:75