From b84b576a221684a39ef12891bafd233ba6289b09 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Sun, 11 Jun 2023 19:24:59 +0200 Subject: c++, codec-json: Added testing for tuples and fixed minor buffer changes --- src/codec-json/json.h | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'src/codec-json/json.h') diff --git a/src/codec-json/json.h b/src/codec-json/json.h index c8456b5..f547e54 100644 --- a/src/codec-json/json.h +++ b/src/codec-json/json.h @@ -10,11 +10,6 @@ namespace saw { namespace encode { struct Json {}; } -} - -#include "json.tmpl.h" - -namespace saw { template class data { @@ -23,12 +18,14 @@ private: public: data():buffer_{}{} + data(std::size_t ring_size_):buffer_{ring_size_}{} + buffer& get_buffer(){ return buffer_; } - void push(uint8_t val){ - buffer_.push(val); + error push(uint8_t val){ + return buffer_.push(val); } std::size_t get_size() const { @@ -43,6 +40,11 @@ public: return buffer_.read(i); } }; +} + +#include "json.tmpl.h" + +namespace saw { /** * Codec class for json @@ -71,9 +73,16 @@ public: SAW_DEFAULT_MOVE(codec); template - error_or encode(const data& from_encode, data& to_encode){ + error_or encode(const data& from_encode, data& to_encode){ // To Be encoded - return impl::json_encode::encode(from_encode, to_encode); + buffer_view buff_v{to_encode.get_buffer()}; + auto eov = impl::json_encode::encode(from_encode, buff_v); + if(eov.is_error()){ + return std::move(eov.get_error()); + } + to_encode.get_buffer().write_advance(buff_v.write_offset()); + + return void_t{}; } template -- cgit v1.2.3