CockpitEnumValue<T extends Enum>.parse constructor
CockpitEnumValue<T extends Enum>.parse (
- Object? value,
- List<
T> values, - String path, {
- required CockpitDecodePolicy policy,
- bool extensibleResponse = false,
Creates a CockpitEnumValue using the named constructor parse.
Implementation
factory CockpitEnumValue.parse(
Object? value,
List<T> values,
String path, {
required CockpitDecodePolicy policy,
bool extensibleResponse = false,
}) {
if (value is! String || value.isEmpty) {
throw FormatException('Expected a non-empty enum value at $path.');
}
for (final candidate in values) {
if (candidate.name == value) {
return CockpitEnumValue<T>.known(candidate);
}
}
if (!extensibleResponse || !policy.allowUnknownEnumValues) {
throw FormatException('Unsupported enum value "$value" at $path.');
}
return CockpitEnumValue<T>._(wireValue: value);
}