couchbase_core/memdx/
hello_feature.rs1#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
20#[non_exhaustive]
21pub enum HelloFeature {
22 DataType,
23 Tls,
24 TCPNoDelay,
25 SeqNo,
26 TCPDelay,
27 Xattr,
28 Xerror,
29 SelectBucket,
30 Snappy,
31 SnappyEverywhere,
32 Json,
33 Duplex,
34 ClusterMapNotif,
35 UnorderedExec,
36 Durations,
37 AltRequests,
38 SyncReplication,
39 Collections,
40 PreserveExpiry,
41 PointInTimeRecovery,
42 CreateAsDeleted,
43 ReplaceBodyWithXattr,
44 ClusterMapKnownVersion,
45 DedupeNotMyVbucketClustermap,
46 ClusterMapChangeNotificationBrief,
47 Unknown(u16),
48}
49
50impl From<HelloFeature> for u16 {
51 fn from(value: HelloFeature) -> u16 {
52 match value {
53 HelloFeature::DataType => 0x01,
54 HelloFeature::Tls => 0x02,
55 HelloFeature::TCPNoDelay => 0x03,
56 HelloFeature::SeqNo => 0x04,
57 HelloFeature::TCPDelay => 0x05,
58 HelloFeature::Xattr => 0x06,
59 HelloFeature::Xerror => 0x07,
60 HelloFeature::SelectBucket => 0x08,
61 HelloFeature::Snappy => 0x0a,
62 HelloFeature::Json => 0x0b,
63 HelloFeature::Duplex => 0x0c,
64 HelloFeature::ClusterMapNotif => 0x0d,
65 HelloFeature::UnorderedExec => 0x0e,
66 HelloFeature::Durations => 0x0f,
67 HelloFeature::AltRequests => 0x10,
68 HelloFeature::SyncReplication => 0x11,
69 HelloFeature::Collections => 0x12,
70 HelloFeature::SnappyEverywhere => 0x13,
71 HelloFeature::PreserveExpiry => 0x14,
72 HelloFeature::PointInTimeRecovery => 0x16,
73 HelloFeature::CreateAsDeleted => 0x17,
74 HelloFeature::ReplaceBodyWithXattr => 0x19,
75 HelloFeature::ClusterMapKnownVersion => 0x1d,
76 HelloFeature::DedupeNotMyVbucketClustermap => 0x1e,
77 HelloFeature::ClusterMapChangeNotificationBrief => 0x1f,
78 HelloFeature::Unknown(code) => code,
79 }
80 }
81}
82
83impl From<u16> for HelloFeature {
84 fn from(value: u16) -> Self {
85 match value {
86 0x01 => HelloFeature::DataType,
87 0x02 => HelloFeature::Tls,
88 0x03 => HelloFeature::TCPNoDelay,
89 0x04 => HelloFeature::SeqNo,
90 0x05 => HelloFeature::TCPDelay,
91 0x06 => HelloFeature::Xattr,
92 0x07 => HelloFeature::Xerror,
93 0x08 => HelloFeature::SelectBucket,
94 0x0a => HelloFeature::Snappy,
95 0x0b => HelloFeature::Json,
96 0x0c => HelloFeature::Duplex,
97 0x0d => HelloFeature::ClusterMapNotif,
98 0x0e => HelloFeature::UnorderedExec,
99 0x0f => HelloFeature::Durations,
100 0x10 => HelloFeature::AltRequests,
101 0x11 => HelloFeature::SyncReplication,
102 0x12 => HelloFeature::Collections,
103 0x13 => HelloFeature::SnappyEverywhere,
104 0x14 => HelloFeature::PreserveExpiry,
105 0x16 => HelloFeature::PointInTimeRecovery,
106 0x17 => HelloFeature::CreateAsDeleted,
107 0x19 => HelloFeature::ReplaceBodyWithXattr,
108 0x1d => HelloFeature::ClusterMapKnownVersion,
109 0x1e => HelloFeature::DedupeNotMyVbucketClustermap,
110 0x1f => HelloFeature::ClusterMapChangeNotificationBrief,
111 code => HelloFeature::Unknown(code),
112 }
113 }
114}