// Code generated by fidlgen; DO NOT EDIT.

package transitivedependencies

import (
	middle "fidl/middle"
	_bindings "syscall/zx/fidl"
)

type Baz struct {
	_ struct{}   `fidl:"s" fidl_size_v1:"4" fidl_alignment_v1:"4"`
	G middle.Bar `fidl_offset_v1:"0"`
}

var _mBaz = _bindings.CreateLazyMarshaler(Baz{})

func (msg *Baz) Marshaler() _bindings.Marshaler {
	return _mBaz
}
