Source File
extension.go
Belonging Package
google.golang.org/protobuf/internal/impl
ExtensionType interface{}
const (
extensionInfoUninitialized = 0
extensionInfoDescInit = 1
extensionInfoFullInit = 2
)
func ( *ExtensionInfo, pref.ExtensionDescriptor, reflect.Type) {
.goType =
.desc = extensionTypeDescriptor{, }
.init = extensionInfoDescInit
}
func ( *ExtensionInfo) () pref.Value {
return .lazyInit().New()
}
func ( *ExtensionInfo) () pref.Value {
return .lazyInit().Zero()
}
func ( *ExtensionInfo) ( interface{}) pref.Value {
return .lazyInit().PBValueOf(reflect.ValueOf())
}
func ( *ExtensionInfo) ( pref.Value) interface{} {
return .lazyInit().GoValueOf().Interface()
}
func ( *ExtensionInfo) ( pref.Value) bool {
return .lazyInit().IsValidPB()
}
func ( *ExtensionInfo) ( interface{}) bool {
return .lazyInit().IsValidGo(reflect.ValueOf())
}
func ( *ExtensionInfo) () pref.ExtensionTypeDescriptor {
if atomic.LoadUint32(&.init) < extensionInfoDescInit {
.lazyInitSlow()
}
return &.desc
}
func ( *ExtensionInfo) () Converter {
if atomic.LoadUint32(&.init) < extensionInfoFullInit {
.lazyInitSlow()
}
return .conv
}
func ( *ExtensionInfo) () {
.mu.Lock()
defer .mu.Unlock()
if .init == extensionInfoFullInit {
return
}
defer atomic.StoreUint32(&.init, extensionInfoFullInit)
if .desc.ExtensionDescriptor == nil {
.initFromLegacy()
}
if !.desc.ExtensionDescriptor.IsPlaceholder() {
if .ExtensionType == nil {
.initToLegacy()
}
.conv = NewConverter(.goType, .desc.ExtensionDescriptor)
.info = makeExtensionFieldInfo(.desc.ExtensionDescriptor)
.info.validation = newValidationInfo(.desc.ExtensionDescriptor, .goType)
}
}
type extensionTypeDescriptor struct {
pref.ExtensionDescriptor
xi *ExtensionInfo
}
func ( *extensionTypeDescriptor) () pref.ExtensionType {
return .xi
}
func ( *extensionTypeDescriptor) () pref.ExtensionDescriptor {
return .ExtensionDescriptor
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |