summaryrefslogtreecommitdiff
path: root/src/codec
diff options
context:
space:
mode:
Diffstat (limited to 'src/codec')
-rw-r--r--src/codec/data.h39
1 files changed, 20 insertions, 19 deletions
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<schema::Array<T,Dim>, encode::Native> {
return s;
}
-
- std::size_t get_index(const std::array<std::size_t, Dim>& 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<schema::Array<T,Dim>, encode::Native> {
}
data<T, encode::Native>& at(const std::array<std::size_t, Dim>& ind){
- return value_.at(this->get_index(ind));
+ return value_.at(this->get_flat_index(ind));
}
const data<T, encode::Native>& at(const std::array<std::size_t, Dim>& ind) const {
- return value_.at(this->get_index(ind));
+ return value_.at(this->get_flat_index(ind));
}
template<std::integral... Dims>
data<T, encode::Native>& at(Dims... i){
- return value_.at(this->get_index({i...}));
+ return value_.at(this->get_flat_index({i...}));
}
template<std::integral... Dims>
const data<T, encode::Native>& 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<schema::Array<T,Dim>, encode::Native> {
}
size_t size() const { return value_.size();}
+
+private:
+ std::size_t get_flat_index(const std::array<std::size_t, Dim>& 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<schema::String, encode::Native>& data){
- return value_ == data.value_;
+ bool operator==(const std::string_view& val)const{
+ return value_ == val;
}
};