tmethod.rs - sraft - simple raft implementation
 (HTM) git clone https://git.parazyd.org/sraft
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
       tmethod.rs (840B)
       ---
            1 use borsh::{BorshDeserialize, BorshSerialize};
            2 
            3 use crate::LogEntry;
            4 
            5 #[derive(BorshSerialize, BorshDeserialize, Debug)]
            6 pub enum RaftMethod {
            7     Vote(VoteArgs),
            8     Heartbeat(HeartbeatArgs),
            9 }
           10 
           11 #[derive(BorshSerialize, BorshDeserialize, Clone, Debug)]
           12 pub struct VoteArgs {
           13     pub term: u64,
           14     pub candidate_id: u64,
           15 }
           16 
           17 #[derive(BorshSerialize, BorshDeserialize, Debug)]
           18 pub struct VoteReply {
           19     pub term: u64,
           20     pub vote_granted: bool,
           21 }
           22 
           23 #[derive(BorshSerialize, BorshDeserialize, Debug)]
           24 pub struct HeartbeatArgs {
           25     pub term: u64,
           26     pub leader_id: u64,
           27 
           28     pub prev_log_index: u64,
           29     pub prev_log_term: u64,
           30 
           31     pub entries: Vec<LogEntry>,
           32     pub leader_commit: u64,
           33 }
           34 
           35 #[derive(BorshSerialize, BorshDeserialize, Debug)]
           36 pub struct HeartbeatReply {
           37     pub success: bool,
           38     pub term: u64,
           39     pub next_index: u64,
           40 }