summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2025-10-23 17:05:19 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2025-10-23 17:05:19 +0200
commit51d0394f250b2d7ce521a3c7136f018c428ddc92 (patch)
tree19f2290f7a44cd71223b340c5d8ecc1e3734fc3b
parentfae4a052c47c14e9dd6704200d4c0f90dda0384c (diff)
downloadlibs-lbm-51d0394f250b2d7ce521a3c7136f018c428ddc92.tar.gz
Fixed Schema request
-rw-r--r--lib/c++/descriptor.hpp16
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: