1 #pragma once
2 
3 #include <mbgl/style/property_value.hpp>
4 #include <mbgl/style/data_driven_property_value.hpp>
5 #include <mbgl/renderer/property_evaluator.hpp>
6 #include <mbgl/renderer/data_driven_property_evaluator.hpp>
7 
8 namespace mbgl {
9 namespace style {
10 
11 template <class T>
12 class LayoutProperty {
13 public:
14     using TransitionableType = std::nullptr_t;
15     using UnevaluatedType = PropertyValue<T>;
16     using EvaluatorType = PropertyEvaluator<T>;
17     using PossiblyEvaluatedType = T;
18     using Type = T;
19     static constexpr bool IsDataDriven = false;
20 };
21 
22 template <class T>
23 class DataDrivenLayoutProperty {
24 public:
25     using TransitionableType = std::nullptr_t;
26     using UnevaluatedType = DataDrivenPropertyValue<T>;
27     using EvaluatorType = DataDrivenPropertyEvaluator<T>;
28     using PossiblyEvaluatedType = PossiblyEvaluatedPropertyValue<T>;
29     using Type = T;
30     static constexpr bool IsDataDriven = true;
31 };
32 
33 } // namespace style
34 } // namespace mbgl
35