diff --git a/elog_meta.hpp b/elog_meta.hpp
index 0c3c353..f5c6f4c 100644
--- a/elog_meta.hpp
+++ b/elog_meta.hpp
@@ -21,6 +21,27 @@
                   const std::vector<std::string>&,
                   AssociationList& list);
 
+/** @brief Pull out metadata name and value from the string
+ *         <metadata name>=<metadata value>
+ *  @param [in] data - metadata key=value entries
+ *  @param [out] metadata - map of metadata name:value
+ */
+inline void parse(const std::vector<std::string>& data,
+                  std::map<std::string, std::string>& metadata)
+{
+    constexpr auto separator = '=';
+    for(const auto& entry: data)
+    {
+        auto pos = entry.find(separator);
+        if(std::string::npos != pos)
+        {
+            auto key = entry.substr(0, entry.find(separator));
+            auto value = entry.substr(entry.find(separator) + 1);
+            metadata.emplace(std::move(key), std::move(value));
+        }
+    }
+};
+
 /** @brief Build error associations specific to metadata. Specialize this
  *         template for handling a specific type of metadata.
  *  @tparam M - type of metadata
