#pragma once #include "bytebuffer/ByteBuffer.hpp" #include namespace tw::net { template struct ByteBufferCodec { static size_t encoding(RingByteBuffer&, T*, size_t offset) { static_assert(sizeof(T) == 0, "No decoder for this type"); } }; /** * Default implementation for trivially copyable types */ template struct ByteBufferCodec>> { static size_t encoding(RingByteBuffer& buf, T* target, size_t offset) { return buf.peek_bytes(target, sizeof(T), offset); } }; }