From 9f2eb416decd293460de01a0023edfe121aacef5 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Fri, 11 Apr 2025 19:32:55 +0200 Subject: Moved Array meta data to forstio type --- modules/codec/c++/data.hpp | 32 ++++++++++++-------------------- modules/codec/tests/codec.cpp | 2 +- 2 files changed, 13 insertions(+), 21 deletions(-) (limited to 'modules/codec') 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, encode::Native> { using Schema = schema::Array; using MetaSchema = typename meta_schema::MetaSchema; private: - // data> dims_; - std::array dims_; + data> dims_; + // std::array dims_; std::vector> 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, 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& i): - dims_{i}, + data(const data& init__): + dims_{init__}, value_{} { value_.resize(get_full_size()); } - data(data init) - { - for(uint64_t i = 0; i < Dim; ++i){ - dims_.at(i) = init.at(i).get(); - } - value_.resize(get_full_size()); - } - template error_or add(saw::data data){ /** @todo @@ -687,7 +679,7 @@ class data, encode::Native> { template data(Dims... size_): - data{{static_cast(size_)...}} + data{{{static_cast(size_)...}}} { static_assert(sizeof...(Dims)==Dim, "Argument size must be equal to the Dimension"); } @@ -719,12 +711,12 @@ class data, encode::Native> { } std::size_t get_dim_size(uint64_t i) const { - return dims_.at(i); + return dims_.at(i).get(); } data size() const { return {value_.size()};} - data> get_dims() const { + data,encode::Native> get_dims() const { return {dims_}; } @@ -752,9 +744,9 @@ private: static_assert(always_false, "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 arr{500u}; + data arr{{{500u}}}; int bar = 0; -- cgit v1.2.3