View Source KafkaEx.Protocol.Kayrock.OffsetFetch.ResponseHelpers (kafka_ex v1.0.0-rc.1)
Shared helper functions for parsing OffsetFetch responses across all versions.
Version differences:
- V0/V1: No top-level error_code field
- V2+: Includes top-level error_code for broker-level errors
- V5+: Adds
committed_leader_epochper partition (extracted dynamically) - V6: Flexible version (compact encodings, tagged fields -- handled by Kayrock)
Summary
Functions
Parses an OffsetFetch response with top-level error_code (V2+).
Parses an OffsetFetch response without top-level error_code (V0/V1).
Types
@type error_tuple() :: {atom(), String.t(), non_neg_integer()}
Functions
@spec parse_response_with_top_level_error(map()) :: {:ok, [KafkaEx.Messages.Offset.t()]} | {:error, any()}
Parses an OffsetFetch response with top-level error_code (V2+).
Handles all V2+ versions uniformly. When committed_leader_epoch is present
in partition data (V5+), it is extracted into leader_epoch. When absent
(V2-V4), leader_epoch defaults to nil.
@spec parse_response_without_top_level_error(map()) :: {:ok, [KafkaEx.Messages.Offset.t()]} | {:error, any()}
Parses an OffsetFetch response without top-level error_code (V0/V1).