d_engine_proto/exts/
common_ext.rs

1use bytes::Bytes;
2
3use crate::common::EntryPayload;
4use crate::common::MembershipChange;
5use crate::common::Noop;
6use crate::common::entry_payload::Payload;
7use crate::common::membership_change::Change;
8
9impl EntryPayload {
10    pub fn command(command: Bytes) -> Self {
11        Self {
12            payload: Some(Payload::Command(command)),
13        }
14    }
15    pub fn noop() -> Self {
16        Self {
17            payload: Some(Payload::Noop(Noop {})),
18        }
19    }
20
21    pub fn config(change: Change) -> Self {
22        Self {
23            payload: Some(Payload::Config(MembershipChange {
24                change: Some(change),
25            })),
26        }
27    }
28
29    pub fn is_config(&self) -> bool {
30        match self.payload {
31            Some(Payload::Command(_)) => false,
32            Some(Payload::Config(_)) => true,
33            Some(Payload::Noop(_)) => false,
34            None => false,
35        }
36    }
37
38    pub fn is_command(&self) -> bool {
39        match self.payload {
40            Some(Payload::Command(_)) => true,
41            Some(Payload::Config(_)) => false,
42            Some(Payload::Noop(_)) => false,
43            None => false,
44        }
45    }
46
47    pub fn is_noop(&self) -> bool {
48        match self.payload {
49            Some(Payload::Command(_)) => false,
50            Some(Payload::Config(_)) => false,
51            Some(Payload::Noop(_)) => true,
52            None => false,
53        }
54    }
55}