lazy#

template<typename Action>
class lazy : public queryosity::dataflow::node, public queryosity::ensemble::slotted<Action>, public queryosity::systematic::resolver<lazy<Action>>, public queryosity::query::result_of<Action>#

Lazy action over dataset.

Template Parameters:

Action – Action to be performed.

Public Functions

template<typename Col>
auto filter(lazy<Col> const &column) const -> queryosity::lazy<selection::node>#

Compound a weight to from this selection.

The current selection becomes its prerequisite in the cutflow: all prerequisites must pass in order for a downstream selection to pass.

Template Parameters:

Col – Column type.

Parameters:

column[in] Input lazy column used as weight decision.

Returns:

Compounded lazy weight.

template<typename Col>
auto weight(lazy<Col> const &column) const -> queryosity::lazy<selection::node>#

Compound a weight to from this selection.

Template Parameters:

Col – Column type.

Parameters:

column[in] Input lazy column used as weight decision.

Returns:

Compounded lazy weight.

template<typename Col>
auto filter(Col const &column) const#

Compound a varied cut to this selection.

Template Parameters:

Col – Varied lazy column type.

Parameters:

column[in] Input varied column used as cut decision.

Returns:

Varied lazy cut.

template<typename Col>
auto weight(Col const &column) const#

Compound a varied weight to this selection.

Template Parameters:

Col – Varied lazy column type.

Parameters:

column[in] Input varied column used as weight decision.

Returns:

Varied lazy weight.

template<typename Expr>
auto filter(queryosity::column::expression<Expr> const &expr) const#

Compound a cut to this selection.

Template Parameters:

Expr – Callable type (C++ function, functor, lambda, etc.).

Parameters:

column[in] Input lazy column used as cut decision.

Returns:

Selection evaluator.

template<typename Expr>
auto weight(queryosity::column::expression<Expr> const &expr) const#

Compound a weight to from this selection.

Template Parameters:

Expr – Callable type (C++ function, functor, lambda, etc.).

Parameters:

expr[in] Expression used to evaluate the weight decision.

Returns:

Selection evaluator.

template<typename Def>
auto filter(queryosity::column::definition<Def> const &defn) const#

Compound a cut to this selection.

Template Parameters:

Def – Column definition type.

Parameters:

defn[in] Column definition whose value is the cut decision.

Returns:

Selection evaluator.

template<typename Def>
auto weight(queryosity::column::definition<Def> const &defn) const#

Compound a weight to from this selection.

Template Parameters:

Def – Column definition type.

Parameters:

defn[in] Column definition whose value is the weight decision.

Returns:

Selection evaluator.

template<typename Qry>
auto book(Qry &&qry) const#

Book a query at this selection.

The query booker should have already been filled with input columns (if applicable).

Template Parameters:

Qry – (Varied) query booker type.

Parameters:

qry[in] Query booker.

Returns:

(Varied) lazy query.

template<typename Bkr>
auto book(std::vector<Bkr> const &bkrs) const#

Book multiple queries (of the same definition) at this selection.

The query bookers should have already been filled with input columns (if applicable).

Template Parameters:

Bkr – (Varied) query booker type.

Parameters:

bkrs[in] Query bookers.

Returns:

List of (varied) lazy queries.

template<typename ...Qrys>
auto book(Qrys&&... qrys) const#

Book multiple queries at this selection.

The query bookers should have already been filled with input columns (if applicable).

Template Parameters:

Qrys – (Varied) query booker types.

Parameters:

qrys[in] Query bookers.

Returns:

(Varied) lazy queries.

template<typename Col, std::enable_if_t<queryosity::is_nominal_v<Col>, bool> = false>
auto get(column::series<Col> const &col) -> lazy<query::series<typename column::series<Col>::value_type>>#

Get a column series for the entries passing the selection.

Attention

The weight value does not apply in the population of the series.

Template Parameters:

Col – Lazy column type.

Returns:

Lazy query.

template<typename Col, std::enable_if_t<queryosity::is_varied_v<Col>, bool> = false>
auto get(column::series<Col> const &col) -> varied<lazy<query::series<typename column::series<Col>::value_type>>>#

Get a column series for the entries passing the selection.

Attention

The weight value does not apply in the population of the series.

Template Parameters:

Col – Varied column type.

Returns:

Varied lazy query.

template<typename V = Action, std::enable_if_t<queryosity::query::has_result_v<V>, bool> = false>
auto result() const -> decltype(std::declval<V>().result()) const&#

(Process and) retrieve the result of a query.

Attention

Invoking this turns all lazy actions in the dataflow eager.

Returns:

Query result.

template<typename V = Action, std::enable_if_t<queryosity::query::has_result_v<V>, bool> = false>
inline auto operator->() const -> decltype(std::declval<V>().result()) const&#

Shortcut for result().