summaryrefslogtreecommitdiff
path: root/modules/codec/c++
diff options
context:
space:
mode:
authorClaudius 'keldu' Holeksa <mail@keldu.de>2024-08-03 16:20:39 +0200
committerClaudius 'keldu' Holeksa <mail@keldu.de>2024-08-03 16:20:39 +0200
commit738bc442f680bda95667e4fd1ae743c6f6afeab0 (patch)
treec518bb64f401501f11e45e1ec9536e1dee2d5187 /modules/codec/c++
parent95145a733d15bef84aa294f31d5cf8cefc66a1e0 (diff)
Made transport slicing possible
Diffstat (limited to 'modules/codec/c++')
-rw-r--r--modules/codec/c++/transport.hpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/modules/codec/c++/transport.hpp b/modules/codec/c++/transport.hpp
index 86079a2..6116497 100644
--- a/modules/codec/c++/transport.hpp
+++ b/modules/codec/c++/transport.hpp
@@ -4,7 +4,7 @@
#include "data.hpp"
namespace saw {
-namespace transport {
+namespace trans {
template<uint64_t Len = 8u>
struct FixedLength {};
@@ -15,13 +15,14 @@ struct NewLine {};
struct CarriageReturnNewLine {};
}
-template<typename Schema, uint64_t Len>
-struct codec<Schema, transport::FixedLength<Len>> {
+template<typename T>
+class transport;
+
+template<uint64_t Len>
+class transport<trans::FixedLength<Len>> {
private:
public:
error_or<buffer_view> view_slice(buffer& buff) const {
- (void) buff;
-
typename native_data_type<schema::Primitive<schema::UnsignedInteger, Len>>::type val{};
buffer_view view{buff};
@@ -33,10 +34,9 @@ public:
if(view.read_composite_length() < val){
return make_error<err::buffer_exhausted>();
}
+ buff.read_advance(Len);
- buffer_view data_view{buff, val + Len, 0u};
- data_view.read_advance(Len);
-
+ buffer_view data_view{buff, val, 0u};
return data_view;
}