namespace LiteNetLib
{
public readonly ref struct PooledPacket
{
internal readonly NetPacket _packet;
internal readonly byte _channelNumber;
///
/// Maximum data size that you can put into such packet
///
public readonly int MaxUserDataSize;
///
/// Offset for user data when writing to Data array
///
public readonly int UserDataOffset;
///
/// Raw packet data. Do not modify header! Use UserDataOffset as start point for your data
///
public byte[] Data => _packet.RawData;
internal PooledPacket(NetPacket packet, int maxDataSize, byte channelNumber)
{
_packet = packet;
UserDataOffset = _packet.GetHeaderSize();
_packet.Size = UserDataOffset;
MaxUserDataSize = maxDataSize - UserDataOffset;
_channelNumber = channelNumber;
}
}
}