Add support for union leafs

Change-Id: Ifc1a53eed2c059f6fe5d75544ecaa3e63028f78f
diff --git a/src/leaf_data_type.hpp b/src/leaf_data_type.hpp
index 66f4522..a86691b 100644
--- a/src/leaf_data_type.hpp
+++ b/src/leaf_data_type.hpp
@@ -10,6 +10,7 @@
 #include <set>
 #include <string>
 #include <variant>
+#include <vector>
 
 struct enum_;
 struct identityRef_;
@@ -62,6 +63,7 @@
     std::set<identityRef_> m_allowedValues;
 };
 struct LeafRef;
+struct Union;
 using LeafDataType = std::variant<
     yang::String,
     yang::Decimal,
@@ -77,7 +79,8 @@
     yang::Enum,
     yang::Binary,
     yang::IdentityRef,
-    yang::LeafRef
+    yang::LeafRef,
+    yang::Union
 >;
 struct LeafRef {
     LeafRef(const LeafRef& src);
@@ -86,4 +89,9 @@
     std::string m_targetXPath;
     std::unique_ptr<LeafDataType> m_targetType;
 };
+
+struct Union {
+    bool operator==(const Union& other) const;
+    std::vector<LeafDataType> m_unionTypes;
+};
 }