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; } } }