package impl
import (
)
type (
enumV1 interface {
EnumDescriptor() ([]byte, []int)
}
messageV1 interface {
Descriptor() ([]byte, []int)
}
)
var legacyFileDescCache sync.Map
func ( []byte) protoreflect.FileDescriptor {
if , := legacyFileDescCache.Load(&[0]); {
return .(protoreflect.FileDescriptor)
}
, := gzip.NewReader(bytes.NewReader())
if != nil {
panic()
}
, := ioutil.ReadAll()
if != nil {
panic()
}
:= filedesc.Builder{
RawDescriptor: ,
FileRegistry: resolverOnly{protoregistry.GlobalFiles},
}.Build().File
if , := legacyFileDescCache.LoadOrStore(&[0], ); {
return .(protoreflect.FileDescriptor)
}
return
}
type resolverOnly struct {
reg *protoregistry.Files
}
func ( resolverOnly) ( string) (protoreflect.FileDescriptor, error) {
return .reg.FindFileByPath()
}
func ( resolverOnly) ( protoreflect.FullName) (protoreflect.Descriptor, error) {
return .reg.FindDescriptorByName()
}
func (resolverOnly) (protoreflect.FileDescriptor) error {
return nil
}