| // 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 proto | 
 |  | 
 | import ( | 
 | 	"google.golang.org/protobuf/encoding/protowire" | 
 | 	"google.golang.org/protobuf/reflect/protoreflect" | 
 | ) | 
 |  | 
 | func (o MarshalOptions) sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.Value) int { | 
 | 	switch kind { | 
 | 	case protoreflect.BoolKind: | 
 | 		return protowire.SizeVarint(protowire.EncodeBool(v.Bool())) | 
 | 	case protoreflect.EnumKind: | 
 | 		return protowire.SizeVarint(uint64(v.Enum())) | 
 | 	case protoreflect.Int32Kind: | 
 | 		return protowire.SizeVarint(uint64(int32(v.Int()))) | 
 | 	case protoreflect.Sint32Kind: | 
 | 		return protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) | 
 | 	case protoreflect.Uint32Kind: | 
 | 		return protowire.SizeVarint(uint64(uint32(v.Uint()))) | 
 | 	case protoreflect.Int64Kind: | 
 | 		return protowire.SizeVarint(uint64(v.Int())) | 
 | 	case protoreflect.Sint64Kind: | 
 | 		return protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) | 
 | 	case protoreflect.Uint64Kind: | 
 | 		return protowire.SizeVarint(v.Uint()) | 
 | 	case protoreflect.Sfixed32Kind: | 
 | 		return protowire.SizeFixed32() | 
 | 	case protoreflect.Fixed32Kind: | 
 | 		return protowire.SizeFixed32() | 
 | 	case protoreflect.FloatKind: | 
 | 		return protowire.SizeFixed32() | 
 | 	case protoreflect.Sfixed64Kind: | 
 | 		return protowire.SizeFixed64() | 
 | 	case protoreflect.Fixed64Kind: | 
 | 		return protowire.SizeFixed64() | 
 | 	case protoreflect.DoubleKind: | 
 | 		return protowire.SizeFixed64() | 
 | 	case protoreflect.StringKind: | 
 | 		return protowire.SizeBytes(len(v.String())) | 
 | 	case protoreflect.BytesKind: | 
 | 		return protowire.SizeBytes(len(v.Bytes())) | 
 | 	case protoreflect.MessageKind: | 
 | 		return protowire.SizeBytes(o.size(v.Message())) | 
 | 	case protoreflect.GroupKind: | 
 | 		return protowire.SizeGroup(num, o.size(v.Message())) | 
 | 	default: | 
 | 		return 0 | 
 | 	} | 
 | } |