diff options
| -rw-r--r-- | lib/c++/descriptor.hpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/c++/descriptor.hpp b/lib/c++/descriptor.hpp index 2ba2c97..e81738e 100644 --- a/lib/c++/descriptor.hpp +++ b/lib/c++/descriptor.hpp @@ -37,15 +37,11 @@ struct CellField< > > { using Descriptor = Desc; - using Schema = CellField<Desc,Struct<Member<CellFieldTypes,CellFieldNames>...>>; - using MetaSchema = FixedArray<UInt64,Desc::D>; }; template<typename Desc, typename... CellFieldMembers> struct CellFieldStruct { - using Schema = CellFieldStruct<Desc, Struct<CellFieldMembers...>>; - using InnerSchema = Struct<CellFieldMembers...>; - using MetaSchema = typename InnerSchema::MetaSchema; + using Descriptor = Desc; // using MetaSchema = FixedArray<UInt64, Desc::D>; }; @@ -243,16 +239,22 @@ public: namespace saw { template<typename T, typename Desc, uint64_t S, uint64_t D, uint64_t Q> struct meta_schema<kel::lbm::sch::Cell<T,Desc,S,D,Q>> { - using MetaSchema = schema::Void; + using MetaSchema = schema::Void; using Schema = kel::lbm::sch::Cell<T,Desc,S,D,Q>; }; template<typename Desc, typename CellT> struct meta_schema<kel::lbm::sch::CellField<Desc, CellT>> { - using MetaSchema = schema::FixedArray<schema::UInt64,Desc::D>; + using MetaSchema = schema::FixedArray<schema::UInt64,Desc::D>; using Schema = kel::lbm::sch::CellField<Desc, CellT>; }; +template<typename Desc, typename... CellFieldsT> +struct meta_schema<kel::lbm::sch::CellFieldStruct<Desc,schema::Struct<CellFieldsT...>>> { + using MetaSchema = schema::FixedArray<schema::UInt64,Desc::D>; + using Schema = kel::lbm::sch::CellFieldStruct<Desc,schema::Struct<CellFieldsT...>>; +}; + template<typename Sch, typename Desc, uint64_t S, uint64_t D, uint64_t Q, typename Encode> class data<kel::lbm::sch::Cell<Sch, Desc, S, D, Q>, Encode> final { public: |
