Level sets dependency graph to consume etcd 3.1.5

This commit is contained in:
Timothy St. Clair
2017-04-04 20:54:55 -05:00
parent 1c34102d5b
commit 93c051e28f
392 changed files with 39050 additions and 21582 deletions

View File

@@ -1,4 +1,6 @@
// Copyright (c) 2013, Vastech SA (PTY) LTD. All rights reserved.
// Protocol Buffers for Go with Gadgets
//
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
// http://github.com/gogo/protobuf
//
// Redistribution and use in source and binary forms, with or without
@@ -73,8 +75,8 @@ The following message:
given to the unmarshal plugin, will generate the following code:
func (m *B) Unmarshal(data []byte) error {
l := len(data)
func (m *B) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
var wire uint64
@@ -82,7 +84,7 @@ given to the unmarshal plugin, will generate the following code:
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := data[iNdEx]
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
@@ -101,7 +103,7 @@ given to the unmarshal plugin, will generate the following code:
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := data[iNdEx]
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
@@ -112,7 +114,7 @@ given to the unmarshal plugin, will generate the following code:
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil {
if err := m.A.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@@ -125,7 +127,7 @@ given to the unmarshal plugin, will generate the following code:
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := data[iNdEx]
b := dAtA[iNdEx]
iNdEx++
byteLen |= (int(b) & 0x7F) << shift
if b < 0x80 {
@@ -137,7 +139,7 @@ given to the unmarshal plugin, will generate the following code:
return io.ErrUnexpectedEOF
}
m.G = append(m.G, github_com_gogo_protobuf_test_custom.Uint128{})
if err := m.G[len(m.G)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
if err := m.G[len(m.G)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@@ -151,14 +153,14 @@ given to the unmarshal plugin, will generate the following code:
}
}
iNdEx -= sizeOfWire
skippy, err := skip(data[iNdEx:])
skippy, err := skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
@@ -191,6 +193,7 @@ type unmarshal struct {
ioPkg generator.Single
mathPkg generator.Single
unsafePkg generator.Single
typesPkg generator.Single
localName string
}
@@ -226,7 +229,7 @@ func (p *unmarshal) decodeVarint(varName string, typName string) {
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
p.Out()
p.P(`}`)
p.P(`b := data[iNdEx]`)
p.P(`b := dAtA[iNdEx]`)
p.P(`iNdEx++`)
p.P(varName, ` |= (`, typName, `(b) & 0x7F) << shift`)
p.P(`if b < 0x80 {`)
@@ -245,10 +248,10 @@ func (p *unmarshal) decodeFixed32(varName string, typeName string) {
p.Out()
p.P(`}`)
p.P(`iNdEx += 4`)
p.P(varName, ` = `, typeName, `(data[iNdEx-4])`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-3]) << 8`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-2]) << 16`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-1]) << 24`)
p.P(varName, ` = `, typeName, `(dAtA[iNdEx-4])`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-3]) << 8`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-2]) << 16`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-1]) << 24`)
}
func (p *unmarshal) unsafeFixed32(varName string, typeName string) {
@@ -257,7 +260,7 @@ func (p *unmarshal) unsafeFixed32(varName string, typeName string) {
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
p.Out()
p.P(`}`)
p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&data[iNdEx]))`)
p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[iNdEx]))`)
p.P(`iNdEx += 4`)
}
@@ -268,14 +271,14 @@ func (p *unmarshal) decodeFixed64(varName string, typeName string) {
p.Out()
p.P(`}`)
p.P(`iNdEx += 8`)
p.P(varName, ` = `, typeName, `(data[iNdEx-8])`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-7]) << 8`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-6]) << 16`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-5]) << 24`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-4]) << 32`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-3]) << 40`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-2]) << 48`)
p.P(varName, ` |= `, typeName, `(data[iNdEx-1]) << 56`)
p.P(varName, ` = `, typeName, `(dAtA[iNdEx-8])`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-7]) << 8`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-6]) << 16`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-5]) << 24`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-4]) << 32`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-3]) << 40`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-2]) << 48`)
p.P(varName, ` |= `, typeName, `(dAtA[iNdEx-1]) << 56`)
}
func (p *unmarshal) unsafeFixed64(varName string, typeName string) {
@@ -284,11 +287,11 @@ func (p *unmarshal) unsafeFixed64(varName string, typeName string) {
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
p.Out()
p.P(`}`)
p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&data[iNdEx]))`)
p.P(varName, ` = *(*`, typeName, `)(`, p.unsafePkg.Use(), `.Pointer(&dAtA[iNdEx]))`)
p.P(`iNdEx += 8`)
}
func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorProto) {
func (p *unmarshal) mapField(varName string, customType bool, field *descriptor.FieldDescriptorProto) {
switch field.GetType() {
case descriptor.FieldDescriptorProto_TYPE_DOUBLE:
p.P(`var `, varName, `temp uint64`)
@@ -334,7 +337,7 @@ func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorPr
p.P(`}`)
cast, _ := p.GoType(nil, field)
cast = strings.Replace(cast, "*", "", 1)
p.P(varName, ` := `, cast, `(data[iNdEx:postStringIndex`, varName, `])`)
p.P(varName, ` := `, cast, `(dAtA[iNdEx:postStringIndex`, varName, `])`)
p.P(`iNdEx = postStringIndex`, varName)
case descriptor.FieldDescriptorProto_TYPE_MESSAGE:
p.P(`var mapmsglen int`)
@@ -357,8 +360,17 @@ func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorPr
p.P(`}`)
desc := p.ObjectNamed(field.GetTypeName())
msgname := p.TypeName(desc)
p.P(varName, ` := &`, msgname, `{}`)
p.P(`if err := `, varName, `.Unmarshal(data[iNdEx:postmsgIndex]); err != nil {`)
buf := `dAtA[iNdEx:postmsgIndex]`
if gogoproto.IsStdTime(field) {
p.P(varName, ` := new(time.Time)`)
p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(`, varName, `, `, buf, `); err != nil {`)
} else if gogoproto.IsStdDuration(field) {
p.P(varName, ` := new(time.Duration)`)
p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(`, varName, `, `, buf, `); err != nil {`)
} else {
p.P(varName, ` := &`, msgname, `{}`)
p.P(`if err := `, varName, `.Unmarshal(`, buf, `); err != nil {`)
}
p.In()
p.P(`return err`)
p.Out()
@@ -379,8 +391,22 @@ func (p *unmarshal) mapField(varName string, field *descriptor.FieldDescriptorPr
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
p.Out()
p.P(`}`)
p.P(varName, ` := make([]byte, mapbyteLen)`)
p.P(`copy(`, varName, `, data[iNdEx:postbytesIndex])`)
if customType {
_, ctyp, err := generator.GetCustomType(field)
if err != nil {
panic(err)
}
p.P(`var `, varName, `1 `, ctyp)
p.P(`var `, varName, ` = &`, varName, `1`)
p.P(`if err := `, varName, `.Unmarshal(dAtA[iNdEx:postbytesIndex]); err != nil {`)
p.In()
p.P(`return err`)
p.Out()
p.P(`}`)
} else {
p.P(varName, ` := make([]byte, mapbyteLen)`)
p.P(`copy(`, varName, `, dAtA[iNdEx:postbytesIndex])`)
}
p.P(`iNdEx = postbytesIndex`)
case descriptor.FieldDescriptorProto_TYPE_UINT32:
p.P(`var `, varName, ` uint32`)
@@ -640,13 +666,13 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
p.Out()
p.P(`}`)
if oneof {
p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, `(data[iNdEx:postIndex])}`)
p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{`, typ, `(dAtA[iNdEx:postIndex])}`)
} else if repeated {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, typ, `(data[iNdEx:postIndex]))`)
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, typ, `(dAtA[iNdEx:postIndex]))`)
} else if proto3 || !nullable {
p.P(`m.`, fieldname, ` = `, typ, `(data[iNdEx:postIndex])`)
p.P(`m.`, fieldname, ` = `, typ, `(dAtA[iNdEx:postIndex])`)
} else {
p.P(`s := `, typ, `(data[iNdEx:postIndex])`)
p.P(`s := `, typ, `(dAtA[iNdEx:postIndex])`)
p.P(`m.`, fieldname, ` = &s`)
}
p.P(`iNdEx = postIndex`)
@@ -669,8 +695,27 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
p.Out()
p.P(`}`)
if oneof {
p.P(`v := &`, msgname, `{}`)
p.P(`if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil {`)
buf := `dAtA[iNdEx:postIndex]`
if gogoproto.IsStdTime(field) {
if nullable {
p.P(`v := new(time.Time)`)
p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(v, `, buf, `); err != nil {`)
} else {
p.P(`v := time.Time{}`)
p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(&v, `, buf, `); err != nil {`)
}
} else if gogoproto.IsStdDuration(field) {
if nullable {
p.P(`v := new(time.Duration)`)
p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(v, `, buf, `); err != nil {`)
} else {
p.P(`v := time.Duration(0)`)
p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(&v, `, buf, `); err != nil {`)
}
} else {
p.P(`v := &`, msgname, `{}`)
p.P(`if err := v.Unmarshal(`, buf, `); err != nil {`)
}
p.In()
p.P(`return err`)
p.Out()
@@ -690,17 +735,21 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
// if the map type is an alias and key or values are aliases (type Foo map[Bar]Baz),
// we need to explicitly record their use here.
p.RecordTypeUse(m.KeyAliasField.GetTypeName())
p.RecordTypeUse(m.ValueAliasField.GetTypeName())
if gogoproto.IsCastKey(field) {
p.RecordTypeUse(m.KeyAliasField.GetTypeName())
}
if gogoproto.IsCastValue(field) {
p.RecordTypeUse(m.ValueAliasField.GetTypeName())
}
nullable, valuegoTyp, valuegoAliasTyp = generator.GoMapValueTypes(field, m.ValueField, valuegoTyp, valuegoAliasTyp)
if gogoproto.IsStdTime(field) || gogoproto.IsStdDuration(field) {
valuegoTyp = valuegoAliasTyp
}
p.P(`var keykey uint64`)
p.decodeVarint("keykey", "uint64")
p.mapField("mapkey", m.KeyAliasField)
p.P(`var valuekey uint64`)
p.decodeVarint("valuekey", "uint64")
p.mapField("mapvalue", m.ValueAliasField)
p.mapField("mapkey", false, m.KeyAliasField)
p.P(`if m.`, fieldname, ` == nil {`)
p.In()
p.P(`m.`, fieldname, ` = make(`, m.GoType, `)`)
@@ -713,20 +762,79 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
s += `[` + keygoAliasTyp + `(mapkey)]`
}
v := `mapvalue`
if m.ValueField.IsMessage() && !nullable {
if (m.ValueField.IsMessage() || gogoproto.IsCustomType(field)) && !nullable {
v = `*` + v
}
if valuegoTyp != valuegoAliasTyp {
v = `((` + valuegoAliasTyp + `)(` + v + `))`
}
p.P(`if iNdEx < postIndex {`)
p.In()
p.P(`var valuekey uint64`)
p.decodeVarint("valuekey", "uint64")
p.mapField("mapvalue", gogoproto.IsCustomType(field), m.ValueAliasField)
p.P(s, ` = `, v)
p.Out()
p.P(`} else {`)
p.In()
if gogoproto.IsStdTime(field) {
p.P(`var mapvalue = new(time.Time)`)
if nullable {
p.P(s, ` = mapvalue`)
} else {
p.P(s, ` = *mapvalue`)
}
} else if gogoproto.IsStdDuration(field) {
p.P(`var mapvalue = new(time.Duration)`)
if nullable {
p.P(s, ` = mapvalue`)
} else {
p.P(s, ` = *mapvalue`)
}
} else {
p.P(`var mapvalue `, valuegoAliasTyp)
p.P(s, ` = mapvalue`)
}
p.Out()
p.P(`}`)
} else if repeated {
if nullable {
if gogoproto.IsStdTime(field) {
if nullable {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, new(time.Time))`)
} else {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, time.Time{})`)
}
} else if gogoproto.IsStdDuration(field) {
if nullable {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, new(time.Duration))`)
} else {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, time.Duration(0))`)
}
} else if nullable && !gogoproto.IsCustomType(field) {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, &`, msgname, `{})`)
} else {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, msgname, `{})`)
goType, _ := p.GoType(nil, field)
// remove the slice from the type, i.e. []*T -> *T
goType = goType[2:]
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, `, goType, `{})`)
}
varName := `m.` + fieldname + `[len(m.` + fieldname + `)-1]`
buf := `dAtA[iNdEx:postIndex]`
if gogoproto.IsStdTime(field) {
if nullable {
p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(`, varName, `,`, buf, `); err != nil {`)
} else {
p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(&(`, varName, `),`, buf, `); err != nil {`)
}
} else if gogoproto.IsStdDuration(field) {
if nullable {
p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(`, varName, `,`, buf, `); err != nil {`)
} else {
p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(&(`, varName, `),`, buf, `); err != nil {`)
}
} else {
p.P(`if err := `, varName, `.Unmarshal(`, buf, `); err != nil {`)
}
p.P(`if err := m.`, fieldname, `[len(m.`, fieldname, `)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {`)
p.In()
p.P(`return err`)
p.Out()
@@ -734,22 +842,43 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
} else if nullable {
p.P(`if m.`, fieldname, ` == nil {`)
p.In()
p.P(`m.`, fieldname, ` = &`, msgname, `{}`)
if gogoproto.IsStdTime(field) {
p.P(`m.`, fieldname, ` = new(time.Time)`)
} else if gogoproto.IsStdDuration(field) {
p.P(`m.`, fieldname, ` = new(time.Duration)`)
} else {
goType, _ := p.GoType(nil, field)
// remove the star from the type
p.P(`m.`, fieldname, ` = &`, goType[1:], `{}`)
}
p.Out()
p.P(`}`)
p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`)
if gogoproto.IsStdTime(field) {
p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(m.`, fieldname, `, dAtA[iNdEx:postIndex]); err != nil {`)
} else if gogoproto.IsStdDuration(field) {
p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(m.`, fieldname, `, dAtA[iNdEx:postIndex]); err != nil {`)
} else {
p.P(`if err := m.`, fieldname, `.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`)
}
p.In()
p.P(`return err`)
p.Out()
p.P(`}`)
} else {
p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`)
if gogoproto.IsStdTime(field) {
p.P(`if err := `, p.typesPkg.Use(), `.StdTimeUnmarshal(&m.`, fieldname, `, dAtA[iNdEx:postIndex]); err != nil {`)
} else if gogoproto.IsStdDuration(field) {
p.P(`if err := `, p.typesPkg.Use(), `.StdDurationUnmarshal(&m.`, fieldname, `, dAtA[iNdEx:postIndex]); err != nil {`)
} else {
p.P(`if err := m.`, fieldname, `.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`)
}
p.In()
p.P(`return err`)
p.Out()
p.P(`}`)
}
p.P(`iNdEx = postIndex`)
case descriptor.FieldDescriptorProto_TYPE_BYTES:
p.P(`var byteLen int`)
p.decodeVarint("byteLen", "int")
@@ -767,13 +896,13 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
if !gogoproto.IsCustomType(field) {
if oneof {
p.P(`v := make([]byte, postIndex-iNdEx)`)
p.P(`copy(v, data[iNdEx:postIndex])`)
p.P(`copy(v, dAtA[iNdEx:postIndex])`)
p.P(`m.`, fieldname, ` = &`, p.OneOfTypeName(msg, field), `{v}`)
} else if repeated {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, make([]byte, postIndex-iNdEx))`)
p.P(`copy(m.`, fieldname, `[len(m.`, fieldname, `)-1], data[iNdEx:postIndex])`)
p.P(`copy(m.`, fieldname, `[len(m.`, fieldname, `)-1], dAtA[iNdEx:postIndex])`)
} else {
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `[:0] , data[iNdEx:postIndex]...)`)
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `[:0] , dAtA[iNdEx:postIndex]...)`)
p.P(`if m.`, fieldname, ` == nil {`)
p.In()
p.P(`m.`, fieldname, ` = []byte{}`)
@@ -788,7 +917,7 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
if oneof {
p.P(`var vv `, ctyp)
p.P(`v := &vv`)
p.P(`if err := v.Unmarshal(data[iNdEx:postIndex]); err != nil {`)
p.P(`if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`)
p.In()
p.P(`return err`)
p.Out()
@@ -797,7 +926,7 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
} else if repeated {
p.P(`var v `, ctyp)
p.P(`m.`, fieldname, ` = append(m.`, fieldname, `, v)`)
p.P(`if err := m.`, fieldname, `[len(m.`, fieldname, `)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {`)
p.P(`if err := m.`, fieldname, `[len(m.`, fieldname, `)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`)
p.In()
p.P(`return err`)
p.Out()
@@ -805,13 +934,13 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
} else if nullable {
p.P(`var v `, ctyp)
p.P(`m.`, fieldname, ` = &v`)
p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`)
p.P(`if err := m.`, fieldname, `.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`)
p.In()
p.P(`return err`)
p.Out()
p.P(`}`)
} else {
p.P(`if err := m.`, fieldname, `.Unmarshal(data[iNdEx:postIndex]); err != nil {`)
p.P(`if err := m.`, fieldname, `.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {`)
p.In()
p.P(`return err`)
p.Out()
@@ -968,6 +1097,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.ioPkg = p.NewImport("io")
p.mathPkg = p.NewImport("math")
p.unsafePkg = p.NewImport("unsafe")
p.typesPkg = p.NewImport("github.com/gogo/protobuf/types")
fmtPkg := p.NewImport("fmt")
protoPkg := p.NewImport("github.com/gogo/protobuf/proto")
if !gogoproto.ImportsGoGoProto(file.FileDescriptorProto) {
@@ -1008,12 +1138,12 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
}
rfCount := len(rfMap)
p.P(`func (m *`, ccTypeName, `) Unmarshal(data []byte) error {`)
p.P(`func (m *`, ccTypeName, `) Unmarshal(dAtA []byte) error {`)
p.In()
if rfCount > 0 {
p.P(`var hasFields [`, strconv.Itoa(1+(rfCount-1)/64), `]uint64`)
}
p.P(`l := len(data)`)
p.P(`l := len(dAtA)`)
p.P(`iNdEx := 0`)
p.P(`for iNdEx < l {`)
p.In()
@@ -1044,12 +1174,16 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
if field.OneofIndex != nil {
errFieldname = p.GetOneOfFieldName(message, field)
}
packed := field.IsPacked()
possiblyPacked := field.IsScalar() && field.IsRepeated()
p.P(`case `, strconv.Itoa(int(field.GetNumber())), `:`)
p.In()
wireType := field.WireType()
if packed {
p.P(`if wireType == `, strconv.Itoa(proto.WireBytes), `{`)
if possiblyPacked {
p.P(`if wireType == `, strconv.Itoa(wireType), `{`)
p.In()
p.field(file, message, field, fieldname, false)
p.Out()
p.P(`} else if wireType == `, strconv.Itoa(proto.WireBytes), `{`)
p.In()
p.P(`var packedLen int`)
p.decodeVarint("packedLen", "int")
@@ -1070,10 +1204,6 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.Out()
p.P(`}`)
p.Out()
p.P(`} else if wireType == `, strconv.Itoa(wireType), `{`)
p.In()
p.field(file, message, field, fieldname, false)
p.Out()
p.P(`} else {`)
p.In()
p.P(`return ` + fmtPkg.Use() + `.Errorf("proto: wrong wireType = %d for field ` + errFieldname + `", wireType)`)
@@ -1119,7 +1249,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.Out()
p.P(`}`)
p.P(`iNdEx-=sizeOfWire`)
p.P(`skippy, err := skip`, p.localName+`(data[iNdEx:])`)
p.P(`skippy, err := skip`, p.localName+`(dAtA[iNdEx:])`)
p.P(`if err != nil {`)
p.In()
p.P(`return err`)
@@ -1135,14 +1265,14 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.P(`return `, p.ioPkg.Use(), `.ErrUnexpectedEOF`)
p.Out()
p.P(`}`)
p.P(protoPkg.Use(), `.AppendExtension(m, int32(fieldNum), data[iNdEx:iNdEx+skippy])`)
p.P(protoPkg.Use(), `.AppendExtension(m, int32(fieldNum), dAtA[iNdEx:iNdEx+skippy])`)
p.P(`iNdEx += skippy`)
p.Out()
p.P(`} else {`)
p.In()
}
p.P(`iNdEx=preIndex`)
p.P(`skippy, err := skip`, p.localName, `(data[iNdEx:])`)
p.P(`skippy, err := skip`, p.localName, `(dAtA[iNdEx:])`)
p.P(`if err != nil {`)
p.In()
p.P(`return err`)
@@ -1159,7 +1289,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
p.Out()
p.P(`}`)
if gogoproto.HasUnrecognized(file.FileDescriptorProto, message.DescriptorProto) {
p.P(`m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)`)
p.P(`m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)`)
}
p.P(`iNdEx += skippy`)
p.Out()
@@ -1206,8 +1336,8 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
return
}
p.P(`func skip` + p.localName + `(data []byte) (n int, err error) {
l := len(data)
p.P(`func skip` + p.localName + `(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
var wire uint64
@@ -1218,7 +1348,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
if iNdEx >= l {
return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF
}
b := data[iNdEx]
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
@@ -1236,7 +1366,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF
}
iNdEx++
if data[iNdEx-1] < 0x80 {
if dAtA[iNdEx-1] < 0x80 {
break
}
}
@@ -1253,7 +1383,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
if iNdEx >= l {
return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF
}
b := data[iNdEx]
b := dAtA[iNdEx]
iNdEx++
length |= (int(b) & 0x7F) << shift
if b < 0x80 {
@@ -1276,7 +1406,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
if iNdEx >= l {
return 0, ` + p.ioPkg.Use() + `.ErrUnexpectedEOF
}
b := data[iNdEx]
b := dAtA[iNdEx]
iNdEx++
innerWire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
@@ -1287,7 +1417,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
if innerWireType == 4 {
break
}
next, err := skip` + p.localName + `(data[start:])
next, err := skip` + p.localName + `(dAtA[start:])
if err != nil {
return 0, err
}