pub enum RaftMessage {
AppendEntries {
group_id: GroupId,
request: AppendEntriesRequest<ChirpsTypeConfig>,
},
AppendEntriesResponse {
group_id: GroupId,
response: AppendEntriesResponse<ChirpsNodeId>,
},
Vote {
group_id: GroupId,
request: VoteRequest<ChirpsNodeId>,
},
VoteResponse {
group_id: GroupId,
response: VoteResponse<ChirpsNodeId>,
},
InstallSnapshot {
group_id: GroupId,
request: InstallSnapshotRequest<ChirpsTypeConfig>,
},
InstallSnapshotResponse {
group_id: GroupId,
response: InstallSnapshotResponse<ChirpsNodeId>,
},
}Expand description
Chirps内部でやり取りするRaft RPC。リクエストとレスポンス両方を保持する。
§例
ⓘ
use alopex_chirps::raft::{RaftMessage, GroupId};
use alopex_chirps_raft_storage::types::{VoteRequest, Vote};
let msg = RaftMessage::Vote {
group_id: GroupId(1),
request: VoteRequest {
vote: Vote::new(1, 1),
last_log_id: None,
},
};
assert_eq!(msg.group_id(), GroupId(1));Variants§
Implementations§
Trait Implementations§
Source§impl Debug for RaftMessage
impl Debug for RaftMessage
Source§impl<'de> Deserialize<'de> for RaftMessage
impl<'de> Deserialize<'de> for RaftMessage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for RaftMessage
impl RefUnwindSafe for RaftMessage
impl Send for RaftMessage
impl Sync for RaftMessage
impl Unpin for RaftMessage
impl UnwindSafe for RaftMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more