#pragma once #include #include namespace mbgl { namespace style { template class Function { public: using Stop = std::pair; using Stops = std::vector; explicit Function(Stops stops_, float base_) : base(base_), stops(std::move(stops_)) {} float getBase() const { return base; } const std::vector>& getStops() const { return stops; } private: float base = 1; std::vector> stops; template friend bool operator==(const Function&, const Function&); }; template bool operator==(const Function& lhs, const Function& rhs) { return lhs.base == rhs.base && lhs.stops == rhs.stops; } template bool operator!=(const Function& lhs, const Function& rhs) { return !(lhs == rhs); } } // namespace style } // namespace mbgl