allocateResponseBody returns a fresh response struct for the given api key and version, or nil when the key is unknown. Not used at runtime, but mirrors allocateBody so the unittests and fuzz harness can drive every supported response decoder uniformly. nolint:unused lint:ignore U1000 -- used in _t
(key, version int16)
| 249 | //nolint:unused |
| 250 | //lint:ignore U1000 -- used in _test.go and fuzz tests but stored alongside allocateBody for convenience. |
| 251 | func allocateResponseBody(key, version int16) protocolBody { |
| 252 | switch key { |
| 253 | case apiKeyProduce: |
| 254 | return &ProduceResponse{Version: version} |
| 255 | case apiKeyFetch: |
| 256 | return &FetchResponse{Version: version} |
| 257 | case apiKeyListOffsets: |
| 258 | return &OffsetResponse{Version: version} |
| 259 | case apiKeyMetadata: |
| 260 | return &MetadataResponse{Version: version} |
| 261 | case apiKeyOffsetCommit: |
| 262 | return &OffsetCommitResponse{Version: version} |
| 263 | case apiKeyOffsetFetch: |
| 264 | return &OffsetFetchResponse{Version: version} |
| 265 | case apiKeyFindCoordinator: |
| 266 | return &FindCoordinatorResponse{Version: version} |
| 267 | case apiKeyJoinGroup: |
| 268 | return &JoinGroupResponse{Version: version} |
| 269 | case apiKeyHeartbeat: |
| 270 | return &HeartbeatResponse{Version: version} |
| 271 | case apiKeyLeaveGroup: |
| 272 | return &LeaveGroupResponse{Version: version} |
| 273 | case apiKeySyncGroup: |
| 274 | return &SyncGroupResponse{Version: version} |
| 275 | case apiKeyDescribeGroups: |
| 276 | return &DescribeGroupsResponse{Version: version} |
| 277 | case apiKeyListGroups: |
| 278 | return &ListGroupsResponse{Version: version} |
| 279 | case apiKeySaslHandshake: |
| 280 | return &SaslHandshakeResponse{Version: version} |
| 281 | case apiKeyApiVersions: |
| 282 | return &ApiVersionsResponse{Version: version} |
| 283 | case apiKeyCreateTopics: |
| 284 | return &CreateTopicsResponse{Version: version} |
| 285 | case apiKeyDeleteTopics: |
| 286 | return &DeleteTopicsResponse{Version: version} |
| 287 | case apiKeyDeleteRecords: |
| 288 | return &DeleteRecordsResponse{Version: version} |
| 289 | case apiKeyInitProducerId: |
| 290 | return &InitProducerIDResponse{Version: version} |
| 291 | case apiKeyAddPartitionsToTxn: |
| 292 | return &AddPartitionsToTxnResponse{Version: version} |
| 293 | case apiKeyAddOffsetsToTxn: |
| 294 | return &AddOffsetsToTxnResponse{Version: version} |
| 295 | case apiKeyEndTxn: |
| 296 | return &EndTxnResponse{Version: version} |
| 297 | case apiKeyTxnOffsetCommit: |
| 298 | return &TxnOffsetCommitResponse{Version: version} |
| 299 | case apiKeyDescribeAcls: |
| 300 | return &DescribeAclsResponse{Version: version} |
| 301 | case apiKeyCreateAcls: |
| 302 | return &CreateAclsResponse{Version: version} |
| 303 | case apiKeyDeleteAcls: |
| 304 | return &DeleteAclsResponse{Version: version} |
| 305 | case apiKeyDescribeConfigs: |
| 306 | return &DescribeConfigsResponse{Version: version} |
| 307 | case apiKeyAlterConfigs: |
| 308 | return &AlterConfigsResponse{Version: version} |
no outgoing calls