|
|
@@ -298,6 +298,16 @@ func (o *Buffer) enc_bool(p *Properties, base structPointer) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func (o *Buffer) enc_proto3_bool(p *Properties, base structPointer) error {
|
|
|
+ v := *structPointer_BoolVal(base, p.field)
|
|
|
+ if !v {
|
|
|
+ return ErrNil
|
|
|
+ }
|
|
|
+ o.buf = append(o.buf, p.tagcode...)
|
|
|
+ p.valEnc(o, 1)
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func size_bool(p *Properties, base structPointer) int {
|
|
|
v := *structPointer_Bool(base, p.field)
|
|
|
if v == nil {
|
|
|
@@ -306,6 +316,14 @@ func size_bool(p *Properties, base structPointer) int {
|
|
|
return len(p.tagcode) + 1 // each bool takes exactly one byte
|
|
|
}
|
|
|
|
|
|
+func size_proto3_bool(p *Properties, base structPointer) int {
|
|
|
+ v := *structPointer_BoolVal(base, p.field)
|
|
|
+ if !v {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ return len(p.tagcode) + 1 // each bool takes exactly one byte
|
|
|
+}
|
|
|
+
|
|
|
// Encode an int32.
|
|
|
func (o *Buffer) enc_int32(p *Properties, base structPointer) error {
|
|
|
v := structPointer_Word32(base, p.field)
|
|
|
@@ -318,6 +336,17 @@ func (o *Buffer) enc_int32(p *Properties, base structPointer) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func (o *Buffer) enc_proto3_int32(p *Properties, base structPointer) error {
|
|
|
+ v := structPointer_Word32Val(base, p.field)
|
|
|
+ x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range
|
|
|
+ if x == 0 {
|
|
|
+ return ErrNil
|
|
|
+ }
|
|
|
+ o.buf = append(o.buf, p.tagcode...)
|
|
|
+ p.valEnc(o, uint64(x))
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func size_int32(p *Properties, base structPointer) (n int) {
|
|
|
v := structPointer_Word32(base, p.field)
|
|
|
if word32_IsNil(v) {
|
|
|
@@ -329,6 +358,17 @@ func size_int32(p *Properties, base structPointer) (n int) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func size_proto3_int32(p *Properties, base structPointer) (n int) {
|
|
|
+ v := structPointer_Word32Val(base, p.field)
|
|
|
+ x := int32(word32Val_Get(v)) // permit sign extension to use full 64-bit range
|
|
|
+ if x == 0 {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ n += len(p.tagcode)
|
|
|
+ n += p.valSize(uint64(x))
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// Encode a uint32.
|
|
|
// Exactly the same as int32, except for no sign extension.
|
|
|
func (o *Buffer) enc_uint32(p *Properties, base structPointer) error {
|
|
|
@@ -342,6 +382,17 @@ func (o *Buffer) enc_uint32(p *Properties, base structPointer) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func (o *Buffer) enc_proto3_uint32(p *Properties, base structPointer) error {
|
|
|
+ v := structPointer_Word32Val(base, p.field)
|
|
|
+ x := word32Val_Get(v)
|
|
|
+ if x == 0 {
|
|
|
+ return ErrNil
|
|
|
+ }
|
|
|
+ o.buf = append(o.buf, p.tagcode...)
|
|
|
+ p.valEnc(o, uint64(x))
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func size_uint32(p *Properties, base structPointer) (n int) {
|
|
|
v := structPointer_Word32(base, p.field)
|
|
|
if word32_IsNil(v) {
|
|
|
@@ -353,6 +404,17 @@ func size_uint32(p *Properties, base structPointer) (n int) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func size_proto3_uint32(p *Properties, base structPointer) (n int) {
|
|
|
+ v := structPointer_Word32Val(base, p.field)
|
|
|
+ x := word32Val_Get(v)
|
|
|
+ if x == 0 {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ n += len(p.tagcode)
|
|
|
+ n += p.valSize(uint64(x))
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// Encode an int64.
|
|
|
func (o *Buffer) enc_int64(p *Properties, base structPointer) error {
|
|
|
v := structPointer_Word64(base, p.field)
|
|
|
@@ -365,6 +427,17 @@ func (o *Buffer) enc_int64(p *Properties, base structPointer) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func (o *Buffer) enc_proto3_int64(p *Properties, base structPointer) error {
|
|
|
+ v := structPointer_Word64Val(base, p.field)
|
|
|
+ x := word64Val_Get(v)
|
|
|
+ if x == 0 {
|
|
|
+ return ErrNil
|
|
|
+ }
|
|
|
+ o.buf = append(o.buf, p.tagcode...)
|
|
|
+ p.valEnc(o, x)
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func size_int64(p *Properties, base structPointer) (n int) {
|
|
|
v := structPointer_Word64(base, p.field)
|
|
|
if word64_IsNil(v) {
|
|
|
@@ -376,6 +449,17 @@ func size_int64(p *Properties, base structPointer) (n int) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func size_proto3_int64(p *Properties, base structPointer) (n int) {
|
|
|
+ v := structPointer_Word64Val(base, p.field)
|
|
|
+ x := word64Val_Get(v)
|
|
|
+ if x == 0 {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ n += len(p.tagcode)
|
|
|
+ n += p.valSize(x)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// Encode a string.
|
|
|
func (o *Buffer) enc_string(p *Properties, base structPointer) error {
|
|
|
v := *structPointer_String(base, p.field)
|
|
|
@@ -388,6 +472,16 @@ func (o *Buffer) enc_string(p *Properties, base structPointer) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func (o *Buffer) enc_proto3_string(p *Properties, base structPointer) error {
|
|
|
+ v := *structPointer_StringVal(base, p.field)
|
|
|
+ if v == "" {
|
|
|
+ return ErrNil
|
|
|
+ }
|
|
|
+ o.buf = append(o.buf, p.tagcode...)
|
|
|
+ o.EncodeStringBytes(v)
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func size_string(p *Properties, base structPointer) (n int) {
|
|
|
v := *structPointer_String(base, p.field)
|
|
|
if v == nil {
|
|
|
@@ -399,6 +493,16 @@ func size_string(p *Properties, base structPointer) (n int) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func size_proto3_string(p *Properties, base structPointer) (n int) {
|
|
|
+ v := *structPointer_StringVal(base, p.field)
|
|
|
+ if v == "" {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ n += len(p.tagcode)
|
|
|
+ n += sizeStringBytes(v)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// All protocol buffer fields are nillable, but be careful.
|
|
|
func isNil(v reflect.Value) bool {
|
|
|
switch v.Kind() {
|
|
|
@@ -551,6 +655,16 @@ func (o *Buffer) enc_slice_byte(p *Properties, base structPointer) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func (o *Buffer) enc_proto3_slice_byte(p *Properties, base structPointer) error {
|
|
|
+ s := *structPointer_Bytes(base, p.field)
|
|
|
+ if len(s) == 0 {
|
|
|
+ return ErrNil
|
|
|
+ }
|
|
|
+ o.buf = append(o.buf, p.tagcode...)
|
|
|
+ o.EncodeRawBytes(s)
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func size_slice_byte(p *Properties, base structPointer) (n int) {
|
|
|
s := *structPointer_Bytes(base, p.field)
|
|
|
if s == nil {
|
|
|
@@ -561,6 +675,16 @@ func size_slice_byte(p *Properties, base structPointer) (n int) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func size_proto3_slice_byte(p *Properties, base structPointer) (n int) {
|
|
|
+ s := *structPointer_Bytes(base, p.field)
|
|
|
+ if len(s) == 0 {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ n += len(p.tagcode)
|
|
|
+ n += sizeRawBytes(s)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// Encode a slice of int32s ([]int32).
|
|
|
func (o *Buffer) enc_slice_int32(p *Properties, base structPointer) error {
|
|
|
s := structPointer_Word32Slice(base, p.field)
|