#include #include #include #include #include namespace mbgl { namespace style { template <> optional IdentityStops::evaluate(const Value& value) const { return numericValue(value); } template <> optional IdentityStops::evaluate(const Value& value) const { if (!value.is()) { return {}; } return value.get(); } template <> optional IdentityStops::evaluate(const Value& value) const { if (!value.is()) { return {}; } return Color::parse(value.get()); } template <> optional IdentityStops::evaluate(const Value& value) const { if (!value.is()) { return {}; } return Enum::toEnum(value.get()); } template <> optional IdentityStops::evaluate(const Value& value) const { if (!value.is()) { return {}; } return Enum::toEnum(value.get()); } template <> optional IdentityStops::evaluate(const Value& value) const { if (!value.is()) { return {}; } return Enum::toEnum(value.get()); } template <> optional IdentityStops::evaluate(const Value& value) const { if (!value.is()) { return {}; } return Enum::toEnum(value.get()); } template <> optional> IdentityStops>::evaluate(const Value& value) const { if (!value.is>()) { return {}; } const auto& vector = value.get>(); if (vector.size() != 2 || !numericValue(vector[0]) || !numericValue(vector[1])) { return {}; } std::array array {{ *numericValue(vector[0]), *numericValue(vector[1]) }}; return array; } } // namespace style } // namespace mbgl