xref: /aosp_15_r20/external/golang-protobuf/reflect/protoreflect/methods.go (revision 1c12ee1efe575feb122dbf939ff15148a3b3e8f2)
1*1c12ee1eSDan Willemsen// Copyright 2020 The Go Authors. All rights reserved.
2*1c12ee1eSDan Willemsen// Use of this source code is governed by a BSD-style
3*1c12ee1eSDan Willemsen// license that can be found in the LICENSE file.
4*1c12ee1eSDan Willemsen
5*1c12ee1eSDan Willemsenpackage protoreflect
6*1c12ee1eSDan Willemsen
7*1c12ee1eSDan Willemsenimport (
8*1c12ee1eSDan Willemsen	"google.golang.org/protobuf/internal/pragma"
9*1c12ee1eSDan Willemsen)
10*1c12ee1eSDan Willemsen
11*1c12ee1eSDan Willemsen// The following types are used by the fast-path Message.ProtoMethods method.
12*1c12ee1eSDan Willemsen//
13*1c12ee1eSDan Willemsen// To avoid polluting the public protoreflect API with types used only by
14*1c12ee1eSDan Willemsen// low-level implementations, the canonical definitions of these types are
15*1c12ee1eSDan Willemsen// in the runtime/protoiface package. The definitions here and in protoiface
16*1c12ee1eSDan Willemsen// must be kept in sync.
17*1c12ee1eSDan Willemsentype (
18*1c12ee1eSDan Willemsen	methods = struct {
19*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
20*1c12ee1eSDan Willemsen		Flags            supportFlags
21*1c12ee1eSDan Willemsen		Size             func(sizeInput) sizeOutput
22*1c12ee1eSDan Willemsen		Marshal          func(marshalInput) (marshalOutput, error)
23*1c12ee1eSDan Willemsen		Unmarshal        func(unmarshalInput) (unmarshalOutput, error)
24*1c12ee1eSDan Willemsen		Merge            func(mergeInput) mergeOutput
25*1c12ee1eSDan Willemsen		CheckInitialized func(checkInitializedInput) (checkInitializedOutput, error)
26*1c12ee1eSDan Willemsen	}
27*1c12ee1eSDan Willemsen	supportFlags = uint64
28*1c12ee1eSDan Willemsen	sizeInput    = struct {
29*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
30*1c12ee1eSDan Willemsen		Message Message
31*1c12ee1eSDan Willemsen		Flags   uint8
32*1c12ee1eSDan Willemsen	}
33*1c12ee1eSDan Willemsen	sizeOutput = struct {
34*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
35*1c12ee1eSDan Willemsen		Size int
36*1c12ee1eSDan Willemsen	}
37*1c12ee1eSDan Willemsen	marshalInput = struct {
38*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
39*1c12ee1eSDan Willemsen		Message Message
40*1c12ee1eSDan Willemsen		Buf     []byte
41*1c12ee1eSDan Willemsen		Flags   uint8
42*1c12ee1eSDan Willemsen	}
43*1c12ee1eSDan Willemsen	marshalOutput = struct {
44*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
45*1c12ee1eSDan Willemsen		Buf []byte
46*1c12ee1eSDan Willemsen	}
47*1c12ee1eSDan Willemsen	unmarshalInput = struct {
48*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
49*1c12ee1eSDan Willemsen		Message  Message
50*1c12ee1eSDan Willemsen		Buf      []byte
51*1c12ee1eSDan Willemsen		Flags    uint8
52*1c12ee1eSDan Willemsen		Resolver interface {
53*1c12ee1eSDan Willemsen			FindExtensionByName(field FullName) (ExtensionType, error)
54*1c12ee1eSDan Willemsen			FindExtensionByNumber(message FullName, field FieldNumber) (ExtensionType, error)
55*1c12ee1eSDan Willemsen		}
56*1c12ee1eSDan Willemsen		Depth int
57*1c12ee1eSDan Willemsen	}
58*1c12ee1eSDan Willemsen	unmarshalOutput = struct {
59*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
60*1c12ee1eSDan Willemsen		Flags uint8
61*1c12ee1eSDan Willemsen	}
62*1c12ee1eSDan Willemsen	mergeInput = struct {
63*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
64*1c12ee1eSDan Willemsen		Source      Message
65*1c12ee1eSDan Willemsen		Destination Message
66*1c12ee1eSDan Willemsen	}
67*1c12ee1eSDan Willemsen	mergeOutput = struct {
68*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
69*1c12ee1eSDan Willemsen		Flags uint8
70*1c12ee1eSDan Willemsen	}
71*1c12ee1eSDan Willemsen	checkInitializedInput = struct {
72*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
73*1c12ee1eSDan Willemsen		Message Message
74*1c12ee1eSDan Willemsen	}
75*1c12ee1eSDan Willemsen	checkInitializedOutput = struct {
76*1c12ee1eSDan Willemsen		pragma.NoUnkeyedLiterals
77*1c12ee1eSDan Willemsen	}
78*1c12ee1eSDan Willemsen)
79