in statefun-sdk-go/v3/pkg/statefun/egress.go [240:263]
func (g GenericEgressBuilder) toEgressMessage() (*protocol.FromFunction_EgressMessage, error) {
if g.Target == nil {
return nil, errors.New("an egress record requires a Target")
} else if g.ValueType == nil {
return nil, errors.New("missing value type")
} else if g.Value == nil {
return nil, errors.New("missing value")
}
buffer := bytes.Buffer{}
if err := g.ValueType.Serialize(&buffer, g.Value); err != nil {
return nil, err
}
return &protocol.FromFunction_EgressMessage{
EgressNamespace: g.Target.GetNamespace(),
EgressType: g.Target.GetType(),
Argument: &protocol.TypedValue{
Typename: g.ValueType.GetTypeName().String(),
HasValue: true,
Value: buffer.Bytes(),
},
}, nil
}