13 namespace expression {
17 using Branch = std::pair<std::unique_ptr<Expression>, std::unique_ptr<Expression>>;
19 Case(
type::Type type_, std::vector<Branch> branches_, std::unique_ptr<Expression> otherwise_)
33 std::vector<Branch> branches;
34 std::unique_ptr<Expression> otherwise;
std::pair< std::unique_ptr< Expression >, std::unique_ptr< Expression > > Branch
Case(type::Type type_, std::vector< Branch > branches_, std::unique_ptr< Expression > otherwise_)
bool operator==(const Expression &e) const override
std::string getOperator() const override
EvaluationResult evaluate(const EvaluationContext ¶ms) const override
static ParseResult parse(const mbgl::style::conversion::Convertible &value, ParsingContext &ctx)
std::vector< std::optional< Value > > possibleOutputs() const override
void eachChild(const std::function< void(const Expression &)> &visit) const override
std::unique_ptr< Expression > string(std::unique_ptr< Expression >, std::unique_ptr< Expression > def=nullptr)
variant< NullType, NumberType, BooleanType, StringType, ColorType, ObjectType, ValueType, mapbox::util::recursive_wrapper< Array >, CollatorType, FormattedType, ErrorType, ImageType > Type
std::optional< std::unique_ptr< Expression > > ParseResult