rekt_common/enums/
topic_response.rs

1/**
2 * Topics response are all possible responses
3 * type to a TOPICS_REQUEST
4 */
5#[derive(Copy, Clone, PartialEq)]
6#[repr(u8)]
7#[no_mangle]
8pub enum TopicResponse {
9    SubSuccess,
10    SubFailure,
11    UnsubSuccess,
12    UnsubFailure,
13    Unknown,
14}
15
16/**
17 * This function convert an TopicsResponse to an u8
18 *
19 * @param value: TopicsResponse, The source to convert
20 *
21 * @return u8
22 */
23impl From<TopicResponse> for u8 {
24    fn from(value: TopicResponse) -> Self {
25        match value {
26            TopicResponse::SubSuccess => 0x00,
27            TopicResponse::SubFailure => 0x0F,
28            TopicResponse::UnsubSuccess => 0xF0,
29            TopicResponse::UnsubFailure => 0xFF,
30            TopicResponse::Unknown => 0xAA,
31        }
32    }
33}
34
35/**
36 * This function convert an u8 to a TopicsResponse
37 *
38 * @param value: u8, The source to convert
39 *
40 * @return TopicsResponse
41 */
42impl From<u8> for TopicResponse {
43    fn from(value: u8) -> Self {
44        match value {
45            0x00 => TopicResponse::SubSuccess,
46            0x0F => TopicResponse::SubFailure,
47            0xF0 => TopicResponse::UnsubSuccess,
48            0xFF => TopicResponse::UnsubFailure,
49            _ => TopicResponse::Unknown
50        }
51    }
52}