getEnum<T extends ProtobufEnumVariant?> method
T
getEnum<
T extends ProtobufEnumVariant?>( - int fieldNumber,
- List<T> values, {
- T? defaultValue,
})
Implementation
T getEnum<T extends ProtobufEnumVariant?>(
int fieldNumber,
List<T> values, {
T? defaultValue,
}) {
final current = firstWhereNullable((e) => e.fieldNumber == fieldNumber);
if (current == null) {
if (null is T) return defaultValue ?? null as T;
throw ProtocolBufferException(
"Missing value for fieldNumber $fieldNumber",
);
}
if (current.config.fieldType != ProtoFieldType.enumType) {
throw ProtocolBufferException(
"Unsupported field type for conversion as $T.",
);
}
return JsonParser.valueAs(
_toEnum(
values.where((e) => e != null).toList().cast<ProtobufEnumVariant>(),
current.value,
),
);
}