From 4ffe4b85c1ba192463aac46f95d0704c0196b7d2 Mon Sep 17 00:00:00 2001 From: Claudius Holeksa Date: Sat, 27 May 2023 15:16:23 +0200 Subject: c++: Expanding data --- src/codec/data.h | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/codec/data.h b/src/codec/data.h index 310942c..e181dc4 100644 --- a/src/codec/data.h +++ b/src/codec/data.h @@ -69,6 +69,22 @@ private: static_assert(always_false, "Type not supported"); }; +template +class data, encode::Native> { + private: + std::vector> value_; + public: + data(size_t size_){ + value_.resize(size_); + } + + data& at(size_t i){ + return value_.at(i); + } + + size_t size() const { return value_;} +}; + template<> class data { private: @@ -76,7 +92,8 @@ private: public: SAW_FORBID_COPY(data); - data(std::string&& value__):value_{std::move(value__)}{} + data() = default; + data(std::string value__):value_{std::move(value__)}{} std::size_t size() const { return value_.size(); @@ -90,6 +107,18 @@ public: template class data, encode::Native> { private: + typename native_data_type>::type value_; +public: + SAW_FORBID_COPY(data); + + data(typename native_data_type::type value__): + value_{std::move(value__)}{} + + void set(typename native_data_type>::type val){ + value_ = val; + } + + typename native_data_type>::type get() const {return value_;} }; -- cgit v1.2.3