summaryrefslogtreecommitdiff
path: root/lib/c++/descriptor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/c++/descriptor.hpp')
-rw-r--r--lib/c++/descriptor.hpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/c++/descriptor.hpp b/lib/c++/descriptor.hpp
index 51d5814..034c9ce 100644
--- a/lib/c++/descriptor.hpp
+++ b/lib/c++/descriptor.hpp
@@ -37,6 +37,8 @@ struct CellField<
>
> {
using Descriptor = Desc;
+ using Schema = CellField<Desc,Struct<Member<CellFieldTypes,CellFieldNames>...>>;
+ using MetaSchema = FixedArray<schema::UInt64,Desc::D>;
};
template<typename Desc, typename... CellFieldMembers>
@@ -287,7 +289,7 @@ public:
{}
const data<MetaSchema, Encode> meta() const {
- return inner_.get_dims();
+ return inner_.dims();
}
template<uint64_t i>
@@ -311,6 +313,14 @@ public:
data<CellT>& at(const data<schema::FixedArray<schema::UInt64, Desc::D>, Encode>& index){
return inner_.at(index);
}
+
+ data<schema::UInt64,Encode> internal_size() const {
+ return inner_.internal_size();
+ }
+
+ data<CellT,Encode>* internal_data() {
+ return inner_.internal_data();
+ }
};
/**
@@ -330,7 +340,7 @@ private:
saw::error_or<void> helper_constructor(const data<schema::FixedArray<schema::UInt64,Desc::D>>& grid_size){
using MemT = saw::parameter_pack_type<i,CellFieldsT...>::type;
{
- inner_.template get<MemT::Name>() = {grid_size};
+ inner_.template get<MemT::KeyLiteral>() = {grid_size};
}
if constexpr (sizeof...(CellFieldsT) > (i+1u)){
return helper_constructor<i+1u>(grid_size);
@@ -347,7 +357,7 @@ public:
const data<MetaSchema, Encode> meta() const {
using MemT = saw::parameter_pack_type<0u,CellFieldsT...>::type;
- return inner_.template get<MemT::Name>().dims();
+ return inner_.template get<MemT::KeyLiteral>().meta();
}
template<saw::string_literal Key>