hdm_am/operations/
misc.rs1use crate::wire::OperationCode;
2use serde::{Deserialize, Serialize};
3
4use super::{EmptyResponse, Operation};
5
6#[derive(Debug, Clone, Serialize)]
8#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9pub struct DateTimeRequest {}
10
11impl Operation for DateTimeRequest {
12 const CODE: OperationCode = OperationCode::DateTime;
13 type Response = DateTimeResponse;
14}
15
16#[derive(Debug, Clone, Deserialize, Serialize)]
18#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
19#[non_exhaustive]
20pub struct DateTimeResponse {
21 pub dt: String,
23}
24
25#[derive(Debug, Clone, Serialize)]
27#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
28pub struct ReceiptSampleRequest {}
29
30impl Operation for ReceiptSampleRequest {
31 const CODE: OperationCode = OperationCode::ReceiptSample;
32 type Response = EmptyResponse;
33}
34
35#[derive(Debug, Clone, Serialize)]
37#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
38pub struct HdmTimeSyncRequest {}
39
40impl Operation for HdmTimeSyncRequest {
41 const CODE: OperationCode = OperationCode::HdmTimeSync;
42 type Response = EmptyResponse;
43}
44
45#[derive(Debug, Clone, Serialize)]
47#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
48pub struct PaymentSystemsListRequest {}
49
50impl Operation for PaymentSystemsListRequest {
51 const CODE: OperationCode = OperationCode::PaymentSystemsList;
52 type Response = PaymentSystemsListResponse;
53}
54
55#[derive(Debug, Clone, Deserialize, Serialize)]
57#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
58#[non_exhaustive]
59pub struct PaymentSystemsListResponse {
60 #[serde(rename = "PaymentSystems", default)]
62 pub payment_systems: Vec<PaymentSystemEntry>,
63}
64
65#[derive(Debug, Clone, Deserialize, Serialize)]
68#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
69#[non_exhaustive]
70pub struct PaymentSystemEntry {
71 pub code: u32,
73 #[serde(default)]
75 pub name: String,
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
80#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
81pub struct SingleEmarkRequest {
82 #[serde(rename = "eMark")]
85 pub e_mark: String,
86}
87
88impl Operation for SingleEmarkRequest {
89 const CODE: OperationCode = OperationCode::SingleEmark;
90 type Response = EmptyResponse;
91}