kf_protocol_api/
kf_api.rs1use kf_protocol_derive::Encode;
2use kf_protocol_derive::Decode;
3
4#[fluvio_kf(encode_discriminant)]
5#[derive(PartialEq, Debug, Clone, Copy, Encode, Decode)]
6#[repr(u16)]
7pub enum AllKfApiKey {
8 Produce = 0,
9 Fetch = 1,
10 ListOffsets = 2,
11 Metadata = 3,
12 LeaderAndIsr = 4,
13 StopReplica = 5,
14 UpdateMetadata = 6,
15 ControlShutdown = 7,
16 OffsetCommit = 8,
17 OffsetFetch = 9,
18 FindCoordinator = 10,
19 JoinGroup = 11,
20 Heartbeat = 12,
21 LeaveGroup = 13,
22 SyncGroup = 14,
23 DescribeGroup = 15,
24 ListGroups = 16,
25 SaslHandshake = 17,
26 ApiVersion = 18,
27 CreateTopics = 19,
28 DeleteTopics = 20,
29 DeleteRecords = 21,
30 InitProducerId = 22,
31 OffsetForLeaderEpoch = 23,
32 AddPartitionsToTxn = 24,
33 AddOffsetsToTxn = 25,
34 EndTxn = 26,
35 WriteTxnMarkers = 27,
36 TxnOffsetCommit = 28,
37 DescribeAcls = 29,
38 CreateAcls = 30,
39 DeleteAcls = 31,
40 DescribeConfigs = 32,
41 AlterConfigs = 33,
42 AlterReplicaLogDirs = 34,
43 DescribeLogDirs = 35,
44 SaslAuthenticate = 36,
45 CreatePartitions = 37,
46 CreateDelegationToken = 38,
47 RenewDelegationToken = 39,
48 ExpireDelegationToken = 40,
49 DescribeDelegationToken = 41,
50 DeleteGroups = 42,
51}
52
53impl Default for AllKfApiKey {
54 fn default() -> AllKfApiKey {
55 AllKfApiKey::ApiVersion
56 }
57}
58
59#[cfg(test)]
60mod test {
61
62 use crate::AllKfApiKey;
63 use kf_protocol::Decoder;
64 use kf_protocol::Encoder;
65 use std::io::Cursor;
66
67 #[test]
68 fn test_decode_enum_not_enough() {
69 let data = [0x11]; let mut value = AllKfApiKey::ApiVersion;
72 let result = value.decode(&mut Cursor::new(&data), 0);
73 assert!(result.is_err());
74 }
75
76 #[test]
77 fn test_decode_api_enum() {
78 let data = [0x00, 0x03];
79
80 let mut value = AllKfApiKey::Metadata;
81 let result = value.decode(&mut Cursor::new(&data), 0);
82 assert!(result.is_ok());
83 assert_eq!(value, AllKfApiKey::Metadata);
84 }
85
86 #[test]
87 fn test_encode_enum() {
88 let mut src = vec![];
89 let value = AllKfApiKey::Metadata;
90 let result = value.encode(&mut src, 0);
91 assert!(result.is_ok());
92 assert_eq!(src.len(), 2);
93 assert_eq!(src[0], 0x00);
94 assert_eq!(src[1], AllKfApiKey::Metadata as u8);
95 }
96
97}