func NewModule(registry *protoregistry.Types) *starlarkstruct.Module {
	return &starlarkstruct.Module{
		Name: "proto",
		Members: starlark.StringDict{
			"clear":        starlarkClear,
			"clone":        starlarkClone,
			"decode_any":   decodeAny(registry),
			"decode_json":  decodeJSON(registry),
			"decode_text":  decodeText(registry),
			"encode_any":   starlarkEncodeAny,
			"encode_json":  encodeJSON(registry),
			"encode_text":  encodeText(registry),
			"merge":        starlarkMerge,
			"package":      starlarkPackageFn(registry),
			"set_defaults": starlarkSetDefaults,
		},
	}
}
NewModule returns a Starlark module of Protobuf-related functions.

proto = module(
clear,
clone,
decode_any,
decode_json,
decode_text,
encode_any,
encode_json,
encode_text,
merge,
set_defaults,
)

See `docs/modules.asciidoc` for details on the API of each function.
package protomodule
import (
	"fmt"
	"go.starlark.net/starlark"
	"go.starlark.net/starlarkstruct"
	"google.golang.org/protobuf/encoding/protojson"
	"google.golang.org/protobuf/encoding/prototext"
	"google.golang.org/protobuf/proto"
	"google.golang.org/protobuf/reflect/protoreflect"
	"google.golang.org/protobuf/reflect/protoregistry"
	any_pb "google.golang.org/protobuf/types/known/anypb"
)