From 0bd38cdec70c3a07467fccd81b570b754996eb95 Mon Sep 17 00:00:00 2001 From: Claudius Holeksa Date: Tue, 27 Jun 2023 19:16:46 +0200 Subject: c++,codec-json,codec: Working on fixes for JSON Array decoding. Test failing currently --- src/codec/data.h | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) (limited to 'src/codec') diff --git a/src/codec/data.h b/src/codec/data.h index 397aed1..76be8e5 100644 --- a/src/codec/data.h +++ b/src/codec/data.h @@ -187,19 +187,6 @@ class data, encode::Native> { return s; } - - std::size_t get_index(const std::array& i) const { - std::size_t s = 0; - - std::size_t stride = 1; - - for(std::size_t iter = 0; iter < Dim; ++iter){ - s += i.at(iter) * stride; - stride *= dims_.at(iter); - } - - return s; - } public: data() = default; SAW_DEFAULT_COPY(data); @@ -220,21 +207,21 @@ class data, encode::Native> { } data& at(const std::array& ind){ - return value_.at(this->get_index(ind)); + return value_.at(this->get_flat_index(ind)); } const data& at(const std::array& ind) const { - return value_.at(this->get_index(ind)); + return value_.at(this->get_flat_index(ind)); } template data& at(Dims... i){ - return value_.at(this->get_index({i...})); + return value_.at(this->get_flat_index({i...})); } template const data& at(Dims... i) const { - return value_.at(this->get_index({i...})); + return value_.at(this->get_flat_index({i...})); } std::size_t get_dim_size(std::size_t i) const { @@ -242,6 +229,20 @@ class data, encode::Native> { } size_t size() const { return value_.size();} + +private: + std::size_t get_flat_index(const std::array& i) const { + std::size_t s = 0; + + std::size_t stride = 1; + + for(std::size_t iter = 0; iter < Dim; ++iter){ + s += i.at(iter) * stride; + stride *= dims_.at(iter); + } + + return s; + } }; template<> @@ -282,8 +283,8 @@ public: value_.at(i) = val; } - bool operator==(const data& data){ - return value_ == data.value_; + bool operator==(const std::string_view& val)const{ + return value_ == val; } }; -- cgit v1.2.3