summaryrefslogtreecommitdiff
path: root/modules/codec/c++/schema_meta.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/codec/c++/schema_meta.hpp')
-rw-r--r--modules/codec/c++/schema_meta.hpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/modules/codec/c++/schema_meta.hpp b/modules/codec/c++/schema_meta.hpp
index a37197a..9b111e3 100644
--- a/modules/codec/c++/schema_meta.hpp
+++ b/modules/codec/c++/schema_meta.hpp
@@ -15,6 +15,12 @@ struct meta_schema<schema::Void> {
using MetaSchema = schema::Void;
};
+template<>
+struct meta_schema<schema::Bool> {
+ using Schema = schema::Bool;
+ using MetaSchema = schema::Void;
+};
+
template<typename T, uint64_t N>
struct meta_schema<schema::Primitive<T,N>> {
using MetaSchema = schema::Void;
@@ -27,6 +33,12 @@ struct meta_schema<schema::MixedPrecision<schema::Primitive<TA,NA>, schema::Prim
using MetaSchema = schema::Void;
};
+template<typename Key, typename Value>
+struct meta_schema<schema::Map<Key,Value>> {
+ using MetaSchema = schema::Void;
+ using Schema = schema::Map<Key,Value>;
+};
+
template<typename... T, string_literal... Lit>
struct meta_schema<schema::Struct<schema::Member<T,Lit>...>> {
using MetaSchema = schema::Struct<schema::Member<typename meta_schema<T>::MetaSchema,Lit>...>;