MCPcopy
hub / github.com/golang/protobuf / GetExtensions

Function GetExtensions

proto/extensions.go:202–220  ·  view source on GitHub ↗

GetExtensions returns a list of the extensions values present in m, corresponding with the provided list of extension descriptors, xts. If an extension is missing in m, the corresponding value is nil.

(m Message, xts []*ExtensionDesc)

Source from the content-addressed store, hash-verified

200// corresponding with the provided list of extension descriptors, xts.
201// If an extension is missing in m, the corresponding value is nil.
202func GetExtensions(m Message, xts []*ExtensionDesc) ([]interface{}, error) {
203 mr := MessageReflect(m)
204 if mr == nil || !mr.IsValid() {
205 return nil, errNotExtendable
206 }
207
208 vs := make([]interface{}, len(xts))
209 for i, xt := range xts {
210 v, err := GetExtension(m, xt)
211 if err != nil {
212 if err == ErrMissingExtension {
213 continue
214 }
215 return vs, err
216 }
217 vs[i] = v
218 }
219 return vs, nil
220}
221
222// SetExtension sets an extension field in m to the provided value.
223func SetExtension(m Message, xt *ExtensionDesc, v interface{}) error {

Callers 2

TestNilMessageFunction · 0.92

Calls 2

MessageReflectFunction · 0.85
GetExtensionFunction · 0.85

Tested by 2

TestNilMessageFunction · 0.74