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) const7 optional<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