createOneofLookup<E extends Enum> function
PbiOneofLookup<E>
createOneofLookup<
E extends Enum>({ - required BuilderInfo builderInfo,
- required int oneofIndex,
- required List<E> options,
})
Implementation
PbiOneofLookup<E> createOneofLookup<E extends Enum>({
required BuilderInfo builderInfo,
required int oneofIndex,
required List<E> options,
}) {
final entries = listOneofFields(
builderInfo: builderInfo,
oneofIndex: oneofIndex,
).mapIndexed(
(index, field) => MapEntry(
field.tagNumber,
options[index],
),
);
final tagToWhich = {
...Map.fromEntries(entries),
0: options.last,
};
final whichToTag = tagToWhich.map(
(key, value) => MapEntry(value, key),
);
return PbiOneofLookup(
tagToWhich: tagToWhich,
whichToTag: whichToTag,
);
}