package event type Event[T any] interface { Topic() string Payload2Bytes(T) []byte Bytes2Payload([]byte) T } type online struct { } func (o *online) Topic() string { return "postal_event_online" } func (o *online) Payload2Bytes(t string) []byte { return []byte(t) } func (o *online) Bytes2Payload(bytes []byte) string { return string(bytes) }