@@ -2316,13 +2316,13 @@ class dataflow {
2316
2316
auto
2317
2317
vary (column::expression<Fn> const &expr,
2318
2318
std::map<std::string,
2319
- typename column::expression<Fn>::function_type> const &vars) ->
2320
- varied<todo<column::evaluator<column::equation_t <Fn>>>>;
2319
+ typename column::expression<Fn>::function_type> const &vars)
2320
+ -> varied<todo<column::evaluator<column::equation_t <Fn>>>>;
2321
2321
2322
2322
template <typename Def>
2323
2323
auto vary (column::definition<Def> const &defn,
2324
- std::map<std::string, column::definition<Def>> const &vars) ->
2325
- varied<todo<column::evaluator<Def>>>;
2324
+ std::map<std::string, column::definition<Def>> const &vars)
2325
+ -> varied<todo<column::evaluator<Def>>>;
2326
2326
2327
2327
/* "public" API for Python layer */
2328
2328
@@ -2333,6 +2333,12 @@ class dataflow {
2333
2333
template <typename Val>
2334
2334
auto _assign (Val const &val) -> lazy<column::valued<Val>>;
2335
2335
2336
+ template <typename Col>
2337
+ auto _cut (lazy<Col> const &column) -> lazy<selection::node>;
2338
+
2339
+ template <typename Lzy>
2340
+ auto _cut (varied<Lzy> const &column) -> varied<lazy<selection::node>>;
2341
+
2336
2342
template <typename Def, typename ... Args> auto _define (Args &&...args);
2337
2343
template <typename Def>
2338
2344
auto _define (column::definition<Def> const &defn)
@@ -4148,7 +4154,8 @@ auto queryosity::dataflow::weight(lazy<Col> const &col)
4148
4154
return this ->_apply <selection::weight>(col);
4149
4155
}
4150
4156
4151
- template <typename Lzy> auto queryosity::dataflow::filter (varied<Lzy> const &col) {
4157
+ template <typename Lzy>
4158
+ auto queryosity::dataflow::filter (varied<Lzy> const &col) {
4152
4159
using varied_type = varied<lazy<selection::node>>;
4153
4160
varied_type syst (this ->filter (col.nominal ()));
4154
4161
for (auto const &var_name : col.get_variation_names ()) {
@@ -4157,7 +4164,8 @@ template <typename Lzy> auto queryosity::dataflow::filter(varied<Lzy> const &col
4157
4164
return syst;
4158
4165
}
4159
4166
4160
- template <typename Lzy> auto queryosity::dataflow::weight (varied<Lzy> const &col) {
4167
+ template <typename Lzy>
4168
+ auto queryosity::dataflow::weight (varied<Lzy> const &col) {
4161
4169
using varied_type = varied<lazy<selection::node>>;
4162
4170
varied_type syst (this ->weight (col.nominal ()));
4163
4171
for (auto const &var_name : col.get_variation_names ()) {
@@ -4275,8 +4283,8 @@ inline void queryosity::dataflow::reset() { m_analyzed = false; }
4275
4283
4276
4284
template <typename Val>
4277
4285
auto queryosity::dataflow::vary (column::constant<Val> const &cnst,
4278
- std::map<std::string, Val> vars) ->
4279
- varied<lazy<column::valued<Val>>> {
4286
+ std::map<std::string, Val> vars)
4287
+ -> varied<lazy<column::valued<Val>>> {
4280
4288
auto nom = this ->define (cnst);
4281
4289
using varied_type = varied<lazy<column::valued<Val>>>;
4282
4290
varied_type syst (std::move (nom));
@@ -4290,8 +4298,7 @@ template <typename Fn>
4290
4298
auto queryosity::dataflow::vary (
4291
4299
column::expression<Fn> const &expr,
4292
4300
std::map<std::string, typename column::expression<Fn>::function_type> const
4293
- &vars) ->
4294
- varied<todo<column::evaluator<column::equation_t<Fn>>>> {
4301
+ &vars) -> varied<todo<column::evaluator<column::equation_t<Fn>>>> {
4295
4302
auto nom = this ->_equate (expr);
4296
4303
using varied_type = varied<decltype (nom)>;
4297
4304
using function_type = typename column::expression<Fn>::function_type;
@@ -4305,8 +4312,8 @@ auto queryosity::dataflow::vary(
4305
4312
template <typename Def>
4306
4313
auto queryosity::dataflow::vary (
4307
4314
column::definition<Def> const &defn,
4308
- std::map<std::string, column::definition<Def>> const &vars) ->
4309
- varied<todo<column::evaluator<Def>>> {
4315
+ std::map<std::string, column::definition<Def>> const &vars)
4316
+ -> varied<todo<column::evaluator<Def>>> {
4310
4317
auto nom = this ->_define (defn);
4311
4318
using varied_type = varied<decltype (nom)>;
4312
4319
varied_type syst (std::move (nom));
@@ -4335,6 +4342,16 @@ auto queryosity::dataflow::_assign(Val const &val)
4335
4342
return lzy;
4336
4343
}
4337
4344
4345
+ template <typename Col>
4346
+ auto queryosity::dataflow::_cut (lazy<Col> const &col) -> lazy<selection::node> {
4347
+ return this ->filter (col);
4348
+ }
4349
+
4350
+ template <typename Lzy>
4351
+ auto queryosity::dataflow::_cut (varied<Lzy> const &col) -> varied<lazy<selection::node>> {
4352
+ return this ->filter (col);
4353
+ }
4354
+
4338
4355
template <typename To, typename Col>
4339
4356
auto queryosity::dataflow::_convert (lazy<Col> const &col)
4340
4357
-> lazy<column::conversion<To, column::value_t<Col>>> {
0 commit comments