| // Copyright 2018 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Code generated by generate-types. DO NOT EDIT. |
| |
| package impl |
| |
| import ( |
| "reflect" |
| |
| "google.golang.org/protobuf/reflect/protoreflect" |
| ) |
| |
| func getterForNullableScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, conv Converter, fieldOffset offset) func(p pointer) protoreflect.Value { |
| ft := fs.Type |
| if ft.Kind() == reflect.Ptr { |
| ft = ft.Elem() |
| } |
| if fd.Kind() == protoreflect.EnumKind { |
| elemType := fs.Type.Elem() |
| // Enums for nullable types. |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| rv := p.Apply(fieldOffset).Elem().AsValueOf(elemType) |
| if rv.IsNil() { |
| return conv.Zero() |
| } |
| return conv.PBValueOf(rv.Elem()) |
| } |
| } |
| switch ft.Kind() { |
| case reflect.Bool: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).BoolPtr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfBool(**x) |
| } |
| case reflect.Int32: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Int32Ptr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfInt32(**x) |
| } |
| case reflect.Uint32: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Uint32Ptr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfUint32(**x) |
| } |
| case reflect.Int64: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Int64Ptr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfInt64(**x) |
| } |
| case reflect.Uint64: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Uint64Ptr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfUint64(**x) |
| } |
| case reflect.Float32: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Float32Ptr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfFloat32(**x) |
| } |
| case reflect.Float64: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Float64Ptr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfFloat64(**x) |
| } |
| case reflect.String: |
| if fd.Kind() == protoreflect.BytesKind { |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).StringPtr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| if len(**x) == 0 { |
| return protoreflect.ValueOfBytes(nil) |
| } |
| return protoreflect.ValueOfBytes([]byte(**x)) |
| } |
| } |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).StringPtr() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfString(**x) |
| } |
| case reflect.Slice: |
| if fd.Kind() == protoreflect.StringKind { |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Bytes() |
| if len(*x) == 0 { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfString(string(*x)) |
| } |
| } |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Bytes() |
| if *x == nil { |
| return conv.Zero() |
| } |
| return protoreflect.ValueOfBytes(*x) |
| } |
| } |
| panic("unexpected protobuf kind: " + ft.Kind().String()) |
| } |
| |
| func getterForDirectScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, conv Converter, fieldOffset offset) func(p pointer) protoreflect.Value { |
| ft := fs.Type |
| if fd.Kind() == protoreflect.EnumKind { |
| // Enums for non nullable types. |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() |
| return conv.PBValueOf(rv) |
| } |
| } |
| switch ft.Kind() { |
| case reflect.Bool: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Bool() |
| return protoreflect.ValueOfBool(*x) |
| } |
| case reflect.Int32: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Int32() |
| return protoreflect.ValueOfInt32(*x) |
| } |
| case reflect.Uint32: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Uint32() |
| return protoreflect.ValueOfUint32(*x) |
| } |
| case reflect.Int64: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Int64() |
| return protoreflect.ValueOfInt64(*x) |
| } |
| case reflect.Uint64: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Uint64() |
| return protoreflect.ValueOfUint64(*x) |
| } |
| case reflect.Float32: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Float32() |
| return protoreflect.ValueOfFloat32(*x) |
| } |
| case reflect.Float64: |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Float64() |
| return protoreflect.ValueOfFloat64(*x) |
| } |
| case reflect.String: |
| if fd.Kind() == protoreflect.BytesKind { |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).String() |
| if len(*x) == 0 { |
| return protoreflect.ValueOfBytes(nil) |
| } |
| return protoreflect.ValueOfBytes([]byte(*x)) |
| } |
| } |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).String() |
| return protoreflect.ValueOfString(*x) |
| } |
| case reflect.Slice: |
| if fd.Kind() == protoreflect.StringKind { |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Bytes() |
| return protoreflect.ValueOfString(string(*x)) |
| } |
| } |
| return func(p pointer) protoreflect.Value { |
| if p.IsNil() { |
| return conv.Zero() |
| } |
| x := p.Apply(fieldOffset).Bytes() |
| return protoreflect.ValueOfBytes(*x) |
| } |
| } |
| panic("unexpected protobuf kind: " + ft.Kind().String()) |
| } |