#pragma once #include "data.h" #include namespace saw { namespace encode { struct ProtoForst {}; } template class data { private: own buffer_; public: data(own&& buffer__):buffer_{std::move(buffer__)}{} buffer& get_buffer(){ return *buffer_; } const buffer& get_buffer() const { return *buffer_; } }; namespace impl { template class codec, encode::ProtoForst> { static error encode(typename const data, encode::Native>& native){ return no_error(); } static uint64_t size(const data, encode::Native>& d) { return static_cast(N); } }; } template class codec { public: using meta_type = uint64_t; private: public: error_or> decode(const data& encoded){ return make_error(); } error_or> encode(const data& native){ uint64_t length = 0; return make_error(); } }; } }