inline optional<float> toNumber(const mbgl::android::Value& value) { if (value.isNumber()) { return value.toNumber(); } else { return {}; } }
inline optional<Value> toValue(const mbgl::android::Value& value) { if (value.isBool()) { return { value.toBool() }; } else if (value.isString()) { return { value.toString() }; } else if (value.isNumber()) { return { value.toNumber() }; } else { return {}; } }
inline optional<Value> toValue(const mbgl::android::Value& value) { if (value.isNull()) { return {}; } else if (value.isBool()) { return { value.toBool() }; } else if (value.isString()) { return { value.toString() }; } else if (value.isNumber()) { //Need to cast to a double here as the float is otherwise considered a bool... return { (double) value.toNumber() }; } else { return {}; } }