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