1 #include <mbgl/style/conversion/transition_options.hpp> 2 3 namespace mbgl { 4 namespace style { 5 namespace conversion { 6 operator ()(const Convertible & value,Error & error) const7optional<TransitionOptions> Converter<TransitionOptions>::operator()(const Convertible& value, Error& error) const { 8 if (!isObject(value)) { 9 error = { "transition must be an object" }; 10 return {}; 11 } 12 13 optional<TransitionOptions> result = TransitionOptions{}; 14 15 auto duration = objectMember(value, "duration"); 16 if (duration) { 17 auto number = toNumber(*duration); 18 if (!number) { 19 error = { "duration must be a number" }; 20 return {}; 21 } 22 result->duration = { std::chrono::milliseconds(int64_t(*number)) }; 23 } 24 25 auto delay = objectMember(value, "delay"); 26 if (delay) { 27 auto number = toNumber(*delay); 28 if (!number) { 29 error = { "delay must be a number" }; 30 return {}; 31 } 32 result->delay = { std::chrono::milliseconds(int64_t(*number)) }; 33 } 34 35 return result; 36 } 37 38 } // namespace conversion 39 } // namespace style 40 } // namespace mbgl 41