Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrTypeAlreadyDefined is returned when an already defined message type is redefined. ErrTypeAlreadyDefined = errors.New("message type is already defined") // ErrUnknownType is returned when a definition for an unknown message type is requested. ErrUnknownType = errors.New("message type unknown") )
Functions ¶
This section is empty.
Types ¶
type Definition ¶
type Definition struct { // ID defines the unique identifier of the message. ID Type // MaxBytesLength defines the max byte length of the message type. // when 0, it means a message can be arbitrary size MaxBytesLength uint16 // VariableLength defines if the message length is variable. VariableLength bool }
Definition describes a message's ID, its max byte length and whether its size can be variable.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry holds message definitions.
func NewRegistry ¶
func NewRegistry(defs []*Definition) *Registry
NewRegistry creates and initializes a new Registry. Once it is done, the Registry is immutable. Message definitions should be strictly monotonically increasing (based on their Message Type (uint16)).
func (*Registry) DefinitionForType ¶
func (r *Registry) DefinitionForType(msgType Type) (*Definition, error)
DefinitionForType returns the definition for the given message type.
func (*Registry) Definitions ¶
func (r *Registry) Definitions() []*Definition
Definitions returns all registered message definitions.
Click to show internal directories.
Click to hide internal directories.