message

package
v0.12.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateRandomID

func GenerateRandomID() ([]byte, error)

Types

type JsonMessage

type JsonMessage[T any] struct {
	// contains filtered or unexported fields
}

func (*JsonMessage[T]) Data

func (m *JsonMessage[T]) Data() T

func (*JsonMessage[T]) ID

func (m *JsonMessage[T]) ID() []byte

func (*JsonMessage[T]) Metadata

func (m *JsonMessage[T]) Metadata() map[string]interface{}

func (*JsonMessage[T]) Pack

func (m *JsonMessage[T]) Pack() ([]byte, error)

func (*JsonMessage[T]) SetData

func (m *JsonMessage[T]) SetData(data T) error

func (*JsonMessage[T]) SetID

func (m *JsonMessage[T]) SetID(id []byte) error

func (*JsonMessage[T]) SetMetadata

func (m *JsonMessage[T]) SetMetadata(metadata map[string]interface{}) error

func (*JsonMessage[T]) SetVersion added in v0.9.3

func (m *JsonMessage[T]) SetVersion(version common.SemanticVersion)

func (*JsonMessage[T]) String

func (m *JsonMessage[T]) String() string

func (*JsonMessage[T]) Unpack

func (m *JsonMessage[T]) Unpack(b []byte) error

func (*JsonMessage[T]) Version added in v0.9.3

func (m *JsonMessage[T]) Version() common.SemanticVersion

type Message

type Message[T any] interface {
	// Version of the message, used for backward compatibility
	// e.g, v0.0.1, v0.0.2, etc
	Version() common.SemanticVersion

	SetVersion(version common.SemanticVersion)

	ID() []byte
	SetID(id []byte) error

	// Used for recording extra data, e.g, retry count
	Metadata() map[string]interface{}
	SetMetadata(metadata map[string]interface{}) error

	Data() T
	SetData(data T) error

	// Converts the message into a binary package
	Pack() ([]byte, error)

	// Converts a binary package into the message
	Unpack([]byte) error

	String() string
}

Message represents a message that can be sent to a queue, network, etc NOTE: It's not thread-safe

type MessageIDGenerator

type MessageIDGenerator func() ([]byte, error)

func GenerateSequencialIDFunc

func GenerateSequencialIDFunc() MessageIDGenerator

type MsgpackMessage added in v0.12.2

type MsgpackMessage[T any] struct {
	// contains filtered or unexported fields
}

func (*MsgpackMessage[T]) Data added in v0.12.2

func (m *MsgpackMessage[T]) Data() T

func (*MsgpackMessage[T]) ID added in v0.12.2

func (m *MsgpackMessage[T]) ID() []byte

func (*MsgpackMessage[T]) Metadata added in v0.12.2

func (m *MsgpackMessage[T]) Metadata() map[string]interface{}

func (*MsgpackMessage[T]) Pack added in v0.12.2

func (m *MsgpackMessage[T]) Pack() ([]byte, error)

func (*MsgpackMessage[T]) SetData added in v0.12.2

func (m *MsgpackMessage[T]) SetData(data T) error

func (*MsgpackMessage[T]) SetID added in v0.12.2

func (m *MsgpackMessage[T]) SetID(id []byte) error

func (*MsgpackMessage[T]) SetMetadata added in v0.12.2

func (m *MsgpackMessage[T]) SetMetadata(metadata map[string]interface{}) error

func (*MsgpackMessage[T]) SetVersion added in v0.12.2

func (m *MsgpackMessage[T]) SetVersion(version common.SemanticVersion)

func (*MsgpackMessage[T]) String added in v0.12.2

func (m *MsgpackMessage[T]) String() string

func (*MsgpackMessage[T]) Unpack added in v0.12.2

func (m *MsgpackMessage[T]) Unpack(b []byte) error

func (*MsgpackMessage[T]) Version added in v0.12.2

func (m *MsgpackMessage[T]) Version() common.SemanticVersion

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL