LengthPrefixed

annotation class LengthPrefixed(val prefix: LengthPrefix = LengthPrefix.Short)

Marks a String or payload field as length-prefixed: prefix bytes followed by UTF-8 data. Default is 2-byte big-endian (UShort) prefix.

@ProtocolMessage
data class GreetingMessage(
@LengthPrefixed val name: String, // 2-byte prefix (default)
@LengthPrefixed(LengthPrefix.Byte) val nickname: String, // 1-byte prefix (max 255)
@LengthPrefixed(LengthPrefix.Int) val bio: String, // 4-byte prefix
)

Properties

Link copied to clipboard