pub(crate) fn maybe_emit_entry(
provider: &Arc<KafkaProvider>,
record: Record,
buffered_records: &mut HashMap<RegionId, Vec<Record>>,
) -> Result<Option<Entry>>Expand description
For type of Entry::Naive Entry:
- Emits a RecordType::Full type record immediately.
For type of Entry::MultiplePart Entry:
- Emits a complete Entry immediately when a RecordType::Last record arrives with buffered parts.
- Emits an incomplete Entry when a new RecordType::First record replaces buffered incomplete records for the same RegionId.
Discarded records:
- A standalone RecordType::First record is discarded when another RecordType::First record with the same payload for the same RegionId arrives.
- A RecordType::Last record without buffered parts is discarded.
A trailing incomplete entry is emitted by remaining_entries.