getMapField<K extends Object, V extends Object> method
Map<K, V>
getMapField<
K extends Object, V extends Object>({ - required int fieldNumber,
- required V valueMapper(
- Object? valye
),
- required K keyMapper(
- Object? valye
),
- Map<K, V>? defaultValue,
})
Implementation
Map<K, V> getMapField<K extends Object, V extends Object>({
required int fieldNumber,
required V Function(Object? valye) valueMapper,
required K Function(Object? valye) keyMapper,
Map<K, V>? defaultValue,
}) {
final data = getListOrNull<MapEntry>(fieldNumber);
if (data == null) {
if (defaultValue != null) return defaultValue;
if (syntax.isV3) {
return <K, V>{};
}
throw ProtoException("Missing value for fieldNumber $fieldNumber");
}
return Map<K, V>.fromEntries(
data.map((e) => MapEntry<K, V>(keyMapper(e.key), valueMapper(e.value))),
);
}