package filedesc
import (
)
var defaultsCache = make(map[Edition]EditionFeatures)
var defaultsKeys = []Edition{}
func () {
unmarshalEditionDefaults(editiondefaults.Defaults)
SurrogateProto2.L1.EditionFeatures = getFeaturesFor(EditionProto2)
SurrogateProto3.L1.EditionFeatures = getFeaturesFor(EditionProto3)
SurrogateEdition2023.L1.EditionFeatures = getFeaturesFor(Edition2023)
}
func ( []byte, EditionFeatures) EditionFeatures {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number:
, := protowire.ConsumeVarint()
= [:]
.GenerateLegacyUnmarshalJSON = protowire.DecodeBool()
case genid.GoFeatures_ApiLevel_field_number:
, := protowire.ConsumeVarint()
= [:]
.APILevel = int()
case genid.GoFeatures_StripEnumPrefix_field_number:
, := protowire.ConsumeVarint()
= [:]
.StripEnumPrefix = int()
default:
panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", ))
}
}
return
}
func ( []byte, EditionFeatures) EditionFeatures {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.FeatureSet_FieldPresence_field_number:
.IsFieldPresence = == genid.FeatureSet_EXPLICIT_enum_value || == genid.FeatureSet_LEGACY_REQUIRED_enum_value
.IsLegacyRequired = == genid.FeatureSet_LEGACY_REQUIRED_enum_value
case genid.FeatureSet_EnumType_field_number:
.IsOpenEnum = == genid.FeatureSet_OPEN_enum_value
case genid.FeatureSet_RepeatedFieldEncoding_field_number:
.IsPacked = == genid.FeatureSet_PACKED_enum_value
case genid.FeatureSet_Utf8Validation_field_number:
.IsUTF8Validated = == genid.FeatureSet_VERIFY_enum_value
case genid.FeatureSet_MessageEncoding_field_number:
.IsDelimitedEncoded = == genid.FeatureSet_DELIMITED_enum_value
case genid.FeatureSet_JsonFormat_field_number:
.IsJSONCompliant = == genid.FeatureSet_ALLOW_enum_value
case genid.FeatureSet_EnforceNamingStyle_field_number:
default:
panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", ))
}
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.FeatureSet_Go_ext_number:
= unmarshalGoFeature(, )
}
}
}
return
}
func ( protoreflect.Descriptor) EditionFeatures {
var EditionFeatures
switch p := .(type) {
case *File:
= .L1.EditionFeatures
case *Message:
= .L1.EditionFeatures
default:
panic(fmt.Sprintf("unknown parent type %T", ))
}
return
}
func ( []byte) {
var Edition
var EditionFeatures
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case protowire.VarintType:
, := protowire.ConsumeVarint()
= [:]
switch {
case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number:
= Edition()
}
case protowire.BytesType:
, := protowire.ConsumeBytes()
= [:]
switch {
case genid.FeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_number:
= unmarshalFeatureSet(, )
case genid.FeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_number:
= unmarshalFeatureSet(, )
}
}
}
defaultsCache[] =
defaultsKeys = append(defaultsKeys, )
}
func ( []byte) {
for len() > 0 {
, , := protowire.ConsumeTag()
= [:]
switch {
case genid.FeatureSetDefaults_Defaults_field_number:
, := protowire.ConsumeBytes()
= [:]
unmarshalEditionDefault()
case genid.FeatureSetDefaults_MinimumEdition_field_number,
genid.FeatureSetDefaults_MaximumEdition_field_number:
, := protowire.ConsumeVarint()
= [:]
default:
panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", ))
}
}
}
func ( Edition) EditionFeatures {
:= EditionUnknown
for , := range defaultsKeys {
if > {
break
}
=
}
if == EditionUnknown {
panic(fmt.Sprintf("unsupported edition: %v", ))
}
return defaultsCache[]
}