From 96c57350d05f4a63283593e8d345f82b20f4ac9c Mon Sep 17 00:00:00 2001
From: Olivier BICHLER <olivier.bichler@cea.fr>
Date: Mon, 19 Feb 2024 18:49:45 +0100
Subject: [PATCH] Display actual value for invalid registrar key

---
 include/aidge/data/Data.hpp       | 2 ++
 include/aidge/utils/Registrar.hpp | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/aidge/data/Data.hpp b/include/aidge/data/Data.hpp
index bf34860fb..cd7581acf 100644
--- a/include/aidge/data/Data.hpp
+++ b/include/aidge/data/Data.hpp
@@ -56,6 +56,8 @@ public:
 private:
     const char* mType;
 };
+
+inline auto format_as(DataType dt) { return EnumStrings<Aidge::DataType>::data[static_cast<int>(dt)]; }
 }
 
 namespace {
diff --git a/include/aidge/utils/Registrar.hpp b/include/aidge/utils/Registrar.hpp
index 66a07eb0c..a5d742fb5 100644
--- a/include/aidge/utils/Registrar.hpp
+++ b/include/aidge/utils/Registrar.hpp
@@ -16,6 +16,8 @@
 #include <pybind11/pybind11.h>
 #endif
 
+#include "aidge/utils/ErrorHandling.hpp"
+
 #include <functional>
 #include <map>
 #include <cassert>
@@ -68,7 +70,7 @@ struct Registrar {
 
     static auto create(const registrar_key& key){
         const auto it = C::registry().find(key);
-        assert(it != C::registry().end() && "invalid registrar key");
+        AIDGE_ASSERT(it != C::registry().end(), "missing or invalid registrar key: {}\nDid you include/import the corresponding module?", key);
 
         return (*it).second;
     }
-- 
GitLab