/
leave_group.go
38 lines (31 loc) · 1012 Bytes
/
leave_group.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package client
// LeaveGroupRequest is used to directly depart a group.
type LeaveGroupRequest struct {
GroupID string
MemberID string
}
// Key returns the Kafka API key for LeaveGroupRequest.
func (*LeaveGroupRequest) Key() int16 {
return 13
}
// Version returns the Kafka request version for backwards compatibility.
func (*LeaveGroupRequest) Version() int16 {
return 0
}
func (lgr *LeaveGroupRequest) Write(encoder Encoder) {
encoder.WriteString(lgr.GroupID)
encoder.WriteString(lgr.MemberID)
}
// LeaveGroupResponse contains whether the member successfully left a group and contains a failure reason if not.
type LeaveGroupResponse struct {
Error error
}
func (lgr *LeaveGroupResponse) Read(decoder Decoder) *DecodingError {
errCode, err := decoder.GetInt16()
if err != nil {
return NewDecodingError(err, reasonInvalidLeaveGroupResponseErrorCode)
}
lgr.Error = BrokerErrors[errCode]
return nil
}
var reasonInvalidLeaveGroupResponseErrorCode = "Invalid error code in LeaveGroupResponse"