@@ -247,9 +247,9 @@ class dataflow
247
247
*/
248
248
template <typename Qry> auto make (query::plan<Qry> const &plan) -> todo<query::booker<Qry>>;
249
249
250
- template <typename Val, typename ... Vars > auto vary (column::constant<Val> const &nom, Vars const &... vars);
250
+ template <typename Val> auto vary (column::constant<Val> const &cnst, std::map<std::string, Val> vars);
251
251
252
- template <typename Fn, typename ... Vars > auto vary (column::expression<Fn> const &expr, Vars const &... vars);
252
+ template <typename Fn> auto vary (column::expression<Fn> const &expr, std::map<std::string, typename column::expression<Fn>::function_type> const & vars);
253
253
254
254
template <typename Defn, typename ... Vars> auto vary (column::definition<Defn> const &defn, Vars const &...vars);
255
255
@@ -425,40 +425,40 @@ auto queryosity::dataflow::read(queryosity::dataset::input<DS> in, queryosity::d
425
425
}
426
426
427
427
template <typename Val>
428
- auto queryosity::dataflow::define (queryosity:: column::constant<Val> const &cnst) -> lazy<column::fixed<Val>>
428
+ auto queryosity::dataflow::define (column::constant<Val> const &cnst) -> lazy<column::fixed<Val>>
429
429
{
430
430
return cnst._assign (*this );
431
431
}
432
432
433
433
template <typename Def, typename ... Cols>
434
- auto queryosity::dataflow::define (queryosity:: column::definition<Def> const &defn,
434
+ auto queryosity::dataflow::define (column::definition<Def> const &defn,
435
435
lazy<Cols> const &...cols) -> lazy<Def>
436
436
{
437
437
return this ->_define (defn).template evaluate (cols...);
438
438
}
439
439
440
440
template <typename Def, typename ... Cols>
441
- auto queryosity::dataflow::define (queryosity:: column::definition<Def> const &defn, Cols const &...cols) ->
441
+ auto queryosity::dataflow::define (column::definition<Def> const &defn, Cols const &...cols) ->
442
442
typename lazy<Def>::varied
443
443
{
444
444
return this ->_define (defn).template evaluate (cols...);
445
445
}
446
446
447
447
template <typename Fn, typename ... Cols>
448
- auto queryosity::dataflow::define (queryosity:: column::expression<Fn> const &expr) -> lazy<column::equation_t<Fn>>
448
+ auto queryosity::dataflow::define (column::expression<Fn> const &expr) -> lazy<column::equation_t<Fn>>
449
449
{
450
450
return this ->_equate (expr).template evaluate ();
451
451
}
452
452
453
453
template <typename Fn, typename ... Cols>
454
- auto queryosity::dataflow::define (queryosity:: column::expression<Fn> const &expr,
454
+ auto queryosity::dataflow::define (column::expression<Fn> const &expr,
455
455
lazy<Cols> const &...cols) -> lazy<column::equation_t<Fn>>
456
456
{
457
457
return this ->_equate (expr).template evaluate (cols...);
458
458
}
459
459
460
460
template <typename Fn, typename ... Cols>
461
- auto queryosity::dataflow::define (queryosity:: column::expression<Fn> const &expr, Cols const &...cols) ->
461
+ auto queryosity::dataflow::define (column::expression<Fn> const &expr, Cols const &...cols) ->
462
462
typename lazy<column::equation_t<Fn>>::varied
463
463
{
464
464
return this ->_equate (expr).template evaluate (cols...);
@@ -586,29 +586,33 @@ inline void queryosity::dataflow::reset()
586
586
m_analyzed = false ;
587
587
}
588
588
589
- template <typename Val, typename ... Vars >
590
- auto queryosity::dataflow::vary (queryosity:: column::constant<Val> const &cnst, Vars const &... vars)
589
+ template <typename Val>
590
+ auto queryosity::dataflow::vary (column::constant<Val> const &cnst, std::map<std::string, Val> vars)
591
591
{
592
592
auto nom = this ->define (cnst);
593
593
using varied_type = typename decltype (nom)::varied;
594
594
varied_type syst (std::move (nom));
595
- ((this ->_vary (syst, vars.name (), column::constant<Val>(std::get<0 >(vars.args ())))), ...);
595
+ for (auto const & var : vars) {
596
+ this ->_vary (syst, var.first , column::constant<Val>(var.second ));
597
+ }
596
598
return syst;
597
599
}
598
600
599
- template <typename Fn, typename ... Vars >
600
- auto queryosity::dataflow::vary (queryosity:: column::expression<Fn> const &expr, Vars const &... vars)
601
+ template <typename Fn>
602
+ auto queryosity::dataflow::vary (column::expression<Fn> const &expr, std::map<std::string, typename column::expression<Fn>::function_type> const & vars)
601
603
{
602
604
auto nom = this ->_equate (expr);
603
605
using varied_type = typename decltype (nom)::varied;
604
606
using function_type = typename column::expression<Fn>::function_type;
605
607
varied_type syst (std::move (nom));
606
- ((this ->_vary (syst, vars.name (), vars.template _vary_arg <column::expression<function_type>>())), ...);
608
+ for (auto const & var : vars) {
609
+ this ->_vary (syst, var.first , column::expression<function_type>(var.second ));
610
+ }
607
611
return syst;
608
612
}
609
613
610
614
template <typename Defn, typename ... Vars>
611
- auto queryosity::dataflow::vary (queryosity:: column::definition<Defn> const &defn, Vars const &...vars)
615
+ auto queryosity::dataflow::vary (column::definition<Defn> const &defn, Vars const &...vars)
612
616
{
613
617
auto nom = this ->_define (defn);
614
618
using varied_type = typename decltype (nom)::varied;
@@ -626,7 +630,7 @@ auto queryosity::dataflow::_read(dataset::reader<DS> &ds,
626
630
return lzy;
627
631
}
628
632
629
- template <typename Val> auto queryosity::dataflow::_assign (Val const &val) -> lazy<queryosity:: column::fixed<Val>>
633
+ template <typename Val> auto queryosity::dataflow::_assign (Val const &val) -> lazy<column::fixed<Val>>
630
634
{
631
635
auto act = ensemble::invoke ([&val](dataset::player *plyr) { return plyr->template assign <Val>(val); },
632
636
m_processor.get_slots ());
@@ -636,7 +640,7 @@ template <typename Val> auto queryosity::dataflow::_assign(Val const &val) -> la
636
640
637
641
template <typename To, typename Col>
638
642
auto queryosity::dataflow::_convert (lazy<Col> const &col)
639
- -> lazy<queryosity:: column::conversion<To, queryosity:: column::value_t<Col>>>
643
+ -> lazy<column::conversion<To, column::value_t<Col>>>
640
644
{
641
645
auto act =
642
646
ensemble::invoke ([](dataset::player *plyr, Col const *from) { return plyr->template convert <To>(*from); },
@@ -647,15 +651,15 @@ auto queryosity::dataflow::_convert(lazy<Col> const &col)
647
651
648
652
template <typename Def, typename ... Args> auto queryosity::dataflow::_define (Args &&...args)
649
653
{
650
- return todo<queryosity:: column::evaluator<Def>>(
654
+ return todo<column::evaluator<Def>>(
651
655
*this ,
652
656
ensemble::invoke (
653
657
[&args...](dataset::player *plyr) { return plyr->template define <Def>(std::forward<Args>(args)...); },
654
658
m_processor.get_slots ()));
655
659
}
656
660
657
661
template <typename Def>
658
- auto queryosity::dataflow::_define (queryosity:: column::definition<Def> const &defn) -> todo<column::evaluator<Def>>
662
+ auto queryosity::dataflow::_define (column::definition<Def> const &defn) -> todo<column::evaluator<Def>>
659
663
{
660
664
return defn._define (*this );
661
665
}
@@ -668,7 +672,7 @@ template <typename Fn> auto queryosity::dataflow::_equate(Fn fn)
668
672
}
669
673
670
674
template <typename Fn>
671
- auto queryosity::dataflow::_equate (queryosity:: column::expression<Fn> const &expr)
675
+ auto queryosity::dataflow::_equate (column::expression<Fn> const &expr)
672
676
-> todo<column::evaluator<column::equation_t<Fn>>>
673
677
{
674
678
return expr._equate (*this );
0 commit comments