in sdk/eventhubs/azure_messaging_eventhubs/src/event_processor/processor.rs [488:516]
fn get_start_position(
&self,
partition_id: &str,
checkpoints: &HashMap<String, Checkpoint>,
) -> StartPosition {
let mut start_position = self.start_positions.default.clone();
if checkpoints.contains_key(partition_id) {
let checkpoint = checkpoints.get(partition_id).unwrap();
if let Some(offset) = &checkpoint.offset {
start_position.location = StartLocation::Offset(offset.clone());
} else if let Some(sequence_number) = checkpoint.sequence_number {
start_position.location = StartLocation::SequenceNumber(sequence_number);
}
} else if self
.start_positions
.per_partition
.contains_key(partition_id)
{
start_position = self
.start_positions
.per_partition
.get(partition_id)
.unwrap()
.clone();
} else {
start_position = self.start_positions.default.clone();
}
start_position
}