in v2/sender.go [117:139]
func (d *Sender) ToServiceBusMessage(
ctx context.Context,
mb MessageBody,
options ...func(msg *azservicebus.Message) error) (*azservicebus.Message, error) {
// uses a marshaller to marshal the message into a service bus message
msg, err := d.options.Marshaller.Marshal(mb)
if err != nil {
return nil, fmt.Errorf("failed to marshal original struct into ServiceBus message: %w", err)
}
msgType := getMessageType(mb)
msg.ApplicationProperties = map[string]interface{}{msgTypeField: msgType}
if d.options.EnableTracingPropagation {
options = append(options, WithTracePropagation(ctx))
}
for _, option := range options {
if err := option(msg); err != nil {
return nil, fmt.Errorf("failed to run message options: %w", err)
}
}
return msg, nil
}