mod amend;
mod cancel;
mod error;
mod submit;
mod validation;
pub use amend::*;
pub use cancel::*;
pub use error::*;
pub use submit::*;
use crate::{SequenceNumber, Timestamp};
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Command {
pub meta: CommandMeta,
pub kind: CommandKind,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct CommandMeta {
pub sequence_number: SequenceNumber,
pub timestamp: Timestamp,
}
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum CommandKind {
Submit(SubmitCmd),
Amend(AmendCmd),
Cancel(CancelCmd),
}