From b670001ca80dbc0e1a51b4a08776eb41dabc2a9e Mon Sep 17 00:00:00 2001 From: Claudius Holeksa Date: Wed, 7 Jun 2023 20:40:33 +0200 Subject: codec-json,c++: Progress on design issues --- src/codec-json/json.h | 14 ++++---------- src/codec-json/json.tmpl.h | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 src/codec-json/json.tmpl.h (limited to 'src') diff --git a/src/codec-json/json.h b/src/codec-json/json.h index 0ba7a2d..2a0bea9 100644 --- a/src/codec-json/json.h +++ b/src/codec-json/json.h @@ -4,6 +4,8 @@ #include #include +#include "json.tmpl.h" + #include namespace saw { @@ -18,23 +20,15 @@ private: public: data() = default; - void reserve(std::size_t i){ - buffer_.reserve(i); - } - - void concat(int8_t c){ - buffer_.emplace_back(c); - } - std::size_t get_size() const { return buffer_.size(); } - int8_t& at(std::size_t i){ + uint8_t& at(std::size_t i){ return buffer_.at(i); } - const int8_t& at(std::size_t i) const { + const uint8_t& at(std::size_t i) const { return buffer_.at(i); } }; diff --git a/src/codec-json/json.tmpl.h b/src/codec-json/json.tmpl.h new file mode 100644 index 0000000..d29f29c --- /dev/null +++ b/src/codec-json/json.tmpl.h @@ -0,0 +1,22 @@ +#pragma once + +#include + +namespace saw { +namespace impl { +template +class json_encode_impl { + static_assert(always_false, "This schema type is not being handle by the json encoding."); +}; + +template +class json_encode_impl, RootSchema, FromEncode> { + static ErrorOr encode(const data& from, data& to, size_t ptr) { + auto val = from.get(); + auto tc_result = std::to_chars(); + + return Void{}; + } +}; +} +} -- cgit v1.2.3