diff options
author | Claudius "keldu" Holeksa <mail@keldu.de> | 2025-04-11 19:32:55 +0200 |
---|---|---|
committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2025-04-11 19:32:55 +0200 |
commit | 9f2eb416decd293460de01a0023edfe121aacef5 (patch) | |
tree | 1a0372e4fbc510eefab0bee78359d7eb47a51ec1 /modules | |
parent | 5c65123b44cd8e9761ff8c812b141a496a649019 (diff) |
Moved Array meta data to forstio type
Diffstat (limited to 'modules')
-rw-r--r-- | modules/codec/c++/data.hpp | 32 | ||||
-rw-r--r-- | modules/codec/tests/codec.cpp | 2 |
2 files changed, 13 insertions, 21 deletions
diff --git a/modules/codec/c++/data.hpp b/modules/codec/c++/data.hpp index ce57967..d13ff47 100644 --- a/modules/codec/c++/data.hpp +++ b/modules/codec/c++/data.hpp @@ -616,15 +616,15 @@ class data<schema::Array<T,Dim>, encode::Native> { using Schema = schema::Array<T,Dim>; using MetaSchema = typename meta_schema<Schema>::MetaSchema; private: - // data<schema::FixedArray<schema::UInt64, Dim>> dims_; - std::array<uint64_t, Dim> dims_; + data<schema::FixedArray<schema::UInt64, Dim>> dims_; + // std::array<uint64_t, Dim> dims_; std::vector<data<T, encode::Native>> value_; uint64_t get_full_size() const { uint64_t s = 1; for(uint64_t iter = 0; iter < Dim; ++iter){ - s *= dims_.at(iter); + s *= dims_.at({iter}).get(); } return s; @@ -633,29 +633,21 @@ class data<schema::Array<T,Dim>, encode::Native> { data(): value_{} { - for(auto& iter : dims_){ - iter = 0u; + for(uint64_t iter = 0; iter < Dim; ++iter){ + dims_.at({iter}) = 0u; } } SAW_DEFAULT_COPY(data); SAW_DEFAULT_MOVE(data); - data(const std::array<uint64_t, Dim>& i): - dims_{i}, + data(const data<MetaSchema, encode::Native>& init__): + dims_{init__}, value_{} { value_.resize(get_full_size()); } - data(data<MetaSchema, encode::Native> init) - { - for(uint64_t i = 0; i < Dim; ++i){ - dims_.at(i) = init.at(i).get(); - } - value_.resize(get_full_size()); - } - template<size_t i = 0> error_or<void> add(saw::data<T,encode::Native> data){ /** @todo @@ -687,7 +679,7 @@ class data<schema::Array<T,Dim>, encode::Native> { template<std::integral... Dims> data(Dims... size_): - data{{static_cast<uint64_t>(size_)...}} + data{{{static_cast<uint64_t>(size_)...}}} { static_assert(sizeof...(Dims)==Dim, "Argument size must be equal to the Dimension"); } @@ -719,12 +711,12 @@ class data<schema::Array<T,Dim>, encode::Native> { } std::size_t get_dim_size(uint64_t i) const { - return dims_.at(i); + return dims_.at(i).get(); } data<schema::UInt64,encode::Native> size() const { return {value_.size()};} - data<schema::FixedArray<schema::UInt64, Dim>> get_dims() const { + data<schema::FixedArray<schema::UInt64, Dim>,encode::Native> get_dims() const { return {dims_}; } @@ -752,9 +744,9 @@ private: static_assert(always_false<V>, "Cases exhausted"); } }(i.at(iter)); - assert(ind < dims_.at({iter})); + assert(ind < dims_.at({iter}).get() ); s += ind * stride; - stride *= dims_.at(iter); + stride *= dims_.at(iter).get(); } return s; diff --git a/modules/codec/tests/codec.cpp b/modules/codec/tests/codec.cpp index 8f50a1c..ef45b4e 100644 --- a/modules/codec/tests/codec.cpp +++ b/modules/codec/tests/codec.cpp @@ -54,7 +54,7 @@ using TestInterface = Interface< SAW_TEST("One Dimensional Array") { using namespace saw; - data<schema::OneDimArray, encode::Native> arr{500u}; + data<schema::OneDimArray, encode::Native> arr{{{500u}}}; int bar = 0; |