// Code generated by wit-bindgen-go. DO NOT EDIT.

package consumer

import (
	"gitea.rebus.ninja/lore/wasm-nats-stream-client/gen/wasmcloud/messaging/types"
	"github.com/bytecodealliance/wasm-tools-go/cm"
	"unsafe"
)

// BrokerMessageShape is used for storage in variant or result types.
type BrokerMessageShape struct {
	_     cm.HostLayout
	shape [unsafe.Sizeof(types.BrokerMessage{})]byte
}

func lower_OptionString(v cm.Option[string]) (f0 uint32, f1 *uint8, f2 uint32) {
	some := v.Some()
	if some != nil {
		f0 = 1
		v1, v2 := cm.LowerString(*some)
		f1 = (*uint8)(v1)
		f2 = (uint32)(v2)
	}
	return
}

func lower_BrokerMessage(v types.BrokerMessage) (f0 *uint8, f1 uint32, f2 *uint8, f3 uint32, f4 uint32, f5 *uint8, f6 uint32) {
	f0, f1 = cm.LowerString(v.Subject)
	f2, f3 = cm.LowerList(v.Body)
	f4, f5, f6 = lower_OptionString(v.ReplyTo)
	return
}
