projectionBoundedChatMessageOmissions function
List<ChatInputOmission>
projectionBoundedChatMessageOmissions(
- List<
ChatInputOmission> trusted, - ChatInputOmission? local,
- int limit
Implementation
List<acp.ChatInputOmission> projectionBoundedChatMessageOmissions(
List<acp.ChatInputOmission> trusted,
acp.ChatInputOmission? local,
int limit,
) {
final bounded = <acp.ChatInputOmission>[];
for (final omission in trusted) {
if (bounded.length >= limit) break;
final duplicate = bounded.any(
(existing) =>
existing.resource == omission.resource &&
existing.reason == omission.reason,
);
if (!duplicate) bounded.add(omission);
}
if (local != null && bounded.length < limit) {
final duplicate = bounded.any(
(existing) =>
existing.resource == local.resource &&
existing.reason == local.reason,
);
if (!duplicate) bounded.add(local);
}
return List<acp.ChatInputOmission>.unmodifiable(bounded);
}