2 #include <scorum/utils/static_variant_serialization.hpp>
9 template <market_kind kind,
typename tag>
16 template <market_kind kind,
typename tag>
23 template <market_kind kind,
typename tag>
32 template <
bool site, market_kind kind,
typename tag>
38 template <
bool site, market_kind kind,
typename tag>
44 template <
bool site, market_kind kind,
typename tag>
63 return wincase.visit([](
const auto& w) {
return wincase_type(w.create_opposite()); });
68 return market.visit([](
const auto& m) {
return m.has_trd_state(); });
75 return !(lhs_opposite < rhs) && !(rhs < lhs_opposite);
80 return wincase.visit([](
const auto& w) {
return std::decay_t<decltype(w)>::kind_v; });
94 template <
typename TVariantItem>
95 std::string static_variant_convertor<protocol::wincase_type>::get_type_name(
const TVariantItem& obj)
const
97 std::string type_name = fc::get_typename<TVariantItem>::name();
98 auto nested_type_threshold = type_name.find_last_of(
':') - 2;
99 auto type_threshold = type_name.find_last_of(
':', nested_type_threshold) + 1;
100 return type_name.substr(type_threshold, type_name.size() - type_threshold);
void to_variant(const game_type &game, fc::variant &var)
void from_variant(const fc::variant &var, market_type &market)
void to_variant(const market_type &market, fc::variant &var)
void from_variant(const fc::variant &var, game_type &game)
market_type create_market(const wincase_type &wincase)
market_kind get_market_kind(const wincase_type &wincase)
wincase_type create_opposite(const wincase_type &wincase)
fc::static_variant< result_home::yes, result_home::no, result_draw::yes, result_draw::no, result_away::yes, result_away::no, round_home::yes, round_home::no, handicap::over, handicap::under, correct_score_home::yes, correct_score_home::no, correct_score_draw::yes, correct_score_draw::no, correct_score_away::yes, correct_score_away::no, correct_score::yes, correct_score::no, goal_home::yes, goal_home::no, goal_both::yes, goal_both::no, goal_away::yes, goal_away::no, total::over, total::under, total_goals_home::over, total_goals_home::under, total_goals_away::over, total_goals_away::under > wincase_type
bool has_trd_state(const market_type &market)
bool match_wincases(const wincase_type &lhs, const wincase_type &rhs)
std::pair< wincase_type, wincase_type > create_wincases(const market_type &market)
fc::static_variant< result_home, result_draw, result_away, round_home, handicap, correct_score_home, correct_score_draw, correct_score_away, correct_score, goal_home, goal_both, goal_away, total, total_goals_home, total_goals_away > market_type
market_type operator()(const over_under_wincase< site, kind, tag > &w) const
market_type operator()(const yes_no_wincase< site, kind, tag > &w) const
market_type operator()(const score_yes_no_wincase< site, kind, tag > &w) const
int16_t threshold
Market threshold x 1000 (i.e. -500 in 'handicap' market means -0.5)
std::pair< wincase_type, wincase_type > operator()(const score_yes_no_market< kind, tag > &m) const
std::pair< wincase_type, wincase_type > operator()(const over_under_market< kind, tag > &m) const
std::pair< wincase_type, wincase_type > operator()(const yes_no_market< kind, tag > &m) const