| 106 | }; |
| 107 | |
| 108 | class NestedChoice final { |
| 109 | public: |
| 110 | using Values = std::map<uint32_t, std::vector<uint64_t>>; |
| 111 | |
| 112 | NestedChoice() = default; |
| 113 | |
| 114 | static NestedChoice values(Values value) { |
| 115 | return NestedChoice(std::move(value)); |
| 116 | } |
| 117 | |
| 118 | uint32_t fory_case_id() const noexcept { return 1; } |
| 119 | |
| 120 | template <class Visitor> decltype(auto) visit(Visitor &&vis) const { |
| 121 | return std::forward<Visitor>(vis)(values_); |
| 122 | } |
| 123 | |
| 124 | bool operator==(const NestedChoice &other) const { |
| 125 | return values_ == other.values_; |
| 126 | } |
| 127 | |
| 128 | private: |
| 129 | Values values_; |
| 130 | |
| 131 | explicit NestedChoice(Values value) : values_(std::move(value)) {} |
| 132 | }; |
| 133 | |
| 134 | class Partial final { |
| 135 | public: |