byte_view_range create_byte_view(const ChunkPacket& packet, OsiLayer from, OsiLayer to) { ByteBuffer buffer_range; for (auto layer : osi_layer_range(from, to)) { ByteBuffer buffer_layer; packet[layer].convert(buffer_layer); // convert clears passed buffer (does not append) buffer_range.insert(buffer_range.end(), buffer_layer.begin(), buffer_layer.end()); } return create_byte_view(std::move(buffer_range)); }
byte_view_range operator()(const ChunkPacket& packet) { return create_byte_view(packet, m_layer); }
byte_view_range create_byte_view(const ChunkPacket& packet, OsiLayer layer) { return create_byte_view(packet[layer]); }