+ packet.write(value.data(), value.length() * sizeof(T));
+ return packet;
+}
+
+template <class T>
+inline Packet& operator>>(Packet& packet, std::basic_string<T>& value)
+{
+ uint16_t length = 0;
+ packet >> length;
+
+ T str[length];
+ size_t charsRead = packet.read(str, length * sizeof(T));
+ value.assign(str, charsRead);