canDecodable method
Implementation
Discriminator? canDecodable(Decoder decoder, String? currentKey, String? currentValue) {
final discriminator = this;
if (identical(discriminator.value, 'use_as_default')) {
return discriminator;
}
if (discriminator.value is Function) {
if (discriminator.value case bool Function(Decoder) fn) {
if (fn(decoder.clone())) {
return discriminator;
} else {
return null;
}
} else {
throw AssertionError('Discriminator function must be of type "bool Function(Decoder)".');
}
}
if (currentValue == discriminator.value) {
return discriminator;
}
return null;
}