func sizeBoolNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {
	v := *p.Bool()
	if v == false {
		return 0
	}
	return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))
}
sizeBoolNoZero returns the size of wire encoding a bool pointer as a Bool.
The zero value is not encoded.
package impl
import (
	"math"
	"unicode/utf8"
	"google.golang.org/protobuf/encoding/protowire"
	"google.golang.org/protobuf/reflect/protoreflect"
)
func sizeBool(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {
	v := *p.Bool()
	return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))
}
func appendBool(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {
	v := *p.Bool()
	b = protowire.AppendVarint(b, f.wiretag)
	b = protowire.AppendVarint(b, protowire.EncodeBool(v))
	return b, nil
}
func consumeBool(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
	if wtyp != protowire.VarintType {
		return out, errUnknown
	}
	var v uint64
	var n int
	if len(b) >= 1 && b[0] < 0x80 {
		v = uint64(b[0])
		n = 1
	} else if len(b) >= 2 && b[1] < 128 {
		v = uint64(b[0]&0x7f) + uint64(b[1])<<7
		n = 2
	} else {
		v, n = protowire.ConsumeVarint(b)
	}
	if n < 0 {
		return out, errDecode
	}
	*p.Bool() = protowire.DecodeBool(v)
	out.n = n
	return out, nil
}
var coderBool = pointerCoderFuncs{
	size:      sizeBool,
	marshal:   appendBool,
	unmarshal: consumeBool,
	merge:     mergeBool,
}