Core/PacketIO: Support WorldPackets::String in SizedString/SizedCString writers

This commit is contained in:
Shauren
2025-05-22 22:11:31 +02:00
parent d1f9b23825
commit 0174ece816

View File

@@ -518,10 +518,32 @@ namespace WorldPackets
namespace SizedString
{
template<uint32 BitCount, typename Container>
inline BitsSizeWriter<BitCount, Container> BitsSize(Container const& value) { return { value }; }
struct SizeWriter
{
Container const& Value;
friend inline ByteBuffer& operator<<(ByteBuffer& data, SizeWriter const& bits)
{
data.WriteBits(static_cast<uint32>(bits.Value.length()), BitCount);
return data;
}
};
template<uint32 BitCount, typename Container>
inline BitsSizeReaderWriter<BitCount, Container> BitsSize(Container& value) { return { value }; }
struct SizeReaderWriter : SizeWriter<BitCount, Container>
{
friend inline ByteBuffer& operator>>(ByteBuffer& data, SizeReaderWriter const& bits)
{
const_cast<Container&>(bits.Value).resize(data.ReadBits(BitCount));
return data;
}
};
template<uint32 BitCount, typename Container>
inline SizeWriter<BitCount, Container> BitsSize(Container const& value) { return { value }; }
template<uint32 BitCount, typename Container>
inline SizeReaderWriter<BitCount, Container> BitsSize(Container& value) { return { value }; }
template<typename Container>
struct DataWriter