tla-rs 0.1.0

Rust implementation of the IronFleet verified distributed systems framework
use builtin::*;
use builtin_macros::*;
use vstd::*;
use crate::protocol::RSL::types::*;
use crate::services::RSL::app_state_machine::*;

verus! {
    pub enum RslMessage {
        RslMessageInvalid{},
        RslMessageRequest{
            seqno_req:int,
            val:AppMessage,
        },
        RslMessage1a{
            bal_1a:Ballot,
        },
        RslMessage1b{
            bal_1b:Ballot,
            log_truncation_point:OperationNumber,
            votes:Votes,
        },
        RslMessage2a{
            bal_2a:Ballot,
            opn_2a:OperationNumber,
            val_2a:RequestBatch,
        },
        RslMessage2b{
            bal_2b:Ballot,
            opn_2b:OperationNumber,
            val_2b:RequestBatch,
        },
        RslMessageHeartbeat{
            bal_heartbeat:Ballot,
            suspicious:bool,
            opn_ckpt:OperationNumber,
        },
        RslMessageReply{
            seqno_reply:int,
            reply:AppMessage,
        },
        RslMessageAppStateRequest{
            bal_state_req:Ballot,
            opn_state_req:OperationNumber,
        },
        RslMessageAppStateSupply{
            bal_state_supply:Ballot,
            opn_state_supply:OperationNumber,
            app_state:AppState,
            reply_cache:ReplyCache,
        },
        RslMessageStartingPhase2{
            bal_2:Ballot,
            logTruncationPoint_2:OperationNumber,
        },
    }
}