add leaves

Change-Id: I962bb4e74f39ec0a838f984b8c13a420ba36d7ce
diff --git a/src/schema.hpp b/src/schema.hpp
index 9c7114b..487f820 100644
--- a/src/schema.hpp
+++ b/src/schema.hpp
@@ -25,10 +25,12 @@
 struct list {
     std::set<std::string> m_keys;
 };
+struct leaf {
+};
 }
 
 
-using NodeType = boost::variant<yang::container, yang::list>;
+using NodeType = boost::variant<yang::container, yang::list, yang::leaf>;
 
 
 class InvalidNodeException : public std::invalid_argument {
@@ -52,6 +54,8 @@
     bool isList(const path_& location, const std::string& name) const;
     void addList(const std::string& location, const std::string& name, const std::set<std::string>& keys);
     bool isPresenceContainer(const path_& location, const std::string& name) const;
+    void addLeaf(const std::string& location, const std::string& name);
+    bool isLeaf(const path_& location, const std::string& name) const;
 
 private:
     const std::unordered_map<std::string, NodeType>& children(const std::string& name) const;