diff --git a/src/utils.cpp b/src/utils.cpp
index 421fc3e..7f93d27 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -77,3 +77,33 @@
             [prefix] (auto it) { return boost::starts_with(it, prefix); });
     return filtered;
 }
+
+struct leafDataToStringVisitor : boost::static_visitor<std::string> {
+    std::string operator()(const enum_& data) const
+    {
+        return data.m_value;
+    }
+
+    std::string operator()(const binary_& data) const
+    {
+        return data.m_value;
+    }
+
+    std::string operator()(const identityRef_& data) const
+    {
+        return data.m_value;
+    }
+
+    template <typename T>
+    std::string operator()(const T& data) const
+    {
+        std::stringstream stream;
+        stream << data;
+        return stream.str();
+    }
+};
+
+std::string leafDataToString(const leaf_data_ value)
+{
+    return boost::apply_visitor(leafDataToStringVisitor(), value);
+}
