use derive_where::derive_where;
use malachitebft_core_types::{Context, Round};
#[derive_where(Clone, Debug, PartialEq, Eq)]
pub enum Input<Ctx>
where
Ctx: Context,
{
NoInput,
NewRound(Round),
ProposeValue(Ctx::Value),
Proposal(Ctx::Proposal),
InvalidProposal,
ProposalAndPolkaPrevious(Ctx::Proposal),
InvalidProposalAndPolkaPrevious(Ctx::Proposal),
PolkaAny,
PolkaNil,
ProposalAndPolkaCurrent(Ctx::Proposal),
PrecommitAny,
ProposalAndPrecommitValue(Ctx::Proposal),
SkipRound(Round),
TimeoutPropose,
TimeoutPrevote,
TimeoutPrecommit,
}