1mod amend;
7mod cancel;
8mod error;
9mod submit;
10mod validation;
11
12pub use amend::*;
13pub use cancel::*;
14pub use error::*;
15pub use submit::*;
16
17use crate::{SequenceNumber, Timestamp};
18
19#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
21#[derive(Debug, Clone, PartialEq, Eq)]
22pub struct Command {
23 pub meta: CommandMeta,
25 pub kind: CommandKind,
27}
28
29#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
31#[derive(Debug, Clone, Copy, PartialEq, Eq)]
32pub struct CommandMeta {
33 pub sequence_number: SequenceNumber,
35 pub timestamp: Timestamp,
37}
38
39#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
41#[derive(Debug, Clone, PartialEq, Eq)]
42pub enum CommandKind {
43 Submit(SubmitCmd),
45 Amend(AmendCmd),
47 Cancel(CancelCmd),
49}