1 #pragma once
2 
3 #include <mbgl/util/chrono.hpp>
4 #include <mbgl/util/optional.hpp>
5 
6 namespace mbgl {
7 namespace style {
8 
9 class TransitionOptions {
10 public:
11     optional<Duration> duration;
12     optional<Duration> delay;
13 
TransitionOptions(optional<Duration> duration_={},optional<Duration> delay_={})14     TransitionOptions(optional<Duration> duration_ = {},
15                       optional<Duration> delay_ = {})
16         : duration(std::move(duration_)),
17           delay(std::move(delay_)) {}
18 
reverseMerge(const TransitionOptions & defaults) const19     TransitionOptions reverseMerge(const TransitionOptions& defaults) const {
20         return {
21             duration ? duration : defaults.duration,
22             delay ? delay : defaults.delay
23         };
24     }
25 
isDefined() const26     bool isDefined() const {
27         return duration || delay;
28     }
29 };
30 
31 } // namespace style
32 } // namespace mbgl
33