33 lines
477 B
Go
33 lines
477 B
Go
|
package bus
|
||
|
|
||
|
type Address string
|
||
|
|
||
|
type Envelope interface {
|
||
|
Message() any
|
||
|
Address() Address
|
||
|
}
|
||
|
|
||
|
type BaseEnvelope struct {
|
||
|
msg any
|
||
|
addr Address
|
||
|
}
|
||
|
|
||
|
// Address implements Envelope.
|
||
|
func (e *BaseEnvelope) Address() Address {
|
||
|
return e.addr
|
||
|
}
|
||
|
|
||
|
// Message implements Envelope.
|
||
|
func (e *BaseEnvelope) Message() any {
|
||
|
return e.msg
|
||
|
}
|
||
|
|
||
|
func NewEnvelope(addr Address, msg any) *BaseEnvelope {
|
||
|
return &BaseEnvelope{
|
||
|
addr: addr,
|
||
|
msg: msg,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _ Envelope = &BaseEnvelope{}
|