#pragma once #include #include namespace mbgl { namespace style { namespace expression { class NumberFormat final : public Expression { public: NumberFormat(std::unique_ptr number_, std::unique_ptr locale_, std::unique_ptr currency_, std::unique_ptr minFractionDigits_, std::unique_ptr maxFractionDigits_); ~NumberFormat(); static ParseResult parse(const mbgl::style::conversion::Convertible& value, ParsingContext& ctx); EvaluationResult evaluate(const EvaluationContext& params) const override; void eachChild(const std::function& visit) const override; bool operator==(const Expression& e) const override; std::vector> possibleOutputs() const override; mbgl::Value serialize() const override; std::string getOperator() const override { return "number-format"; } private: std::unique_ptr number; std::unique_ptr locale; std::unique_ptr currency; std::unique_ptr minFractionDigits; std::unique_ptr maxFractionDigits; }; } // namespace expression } // namespace style } // namespace mbgl