1use serde::{Serialize, Deserialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
10pub enum ResultCode {
11 #[default]
12 Success,
13 RemovedCard,
14 ResetCard,
15 UnpoweredCard,
16 UnresponsiveCard,
17 UnsupportedCard,
18 ReaderUnavailable,
19 SharingViolation,
20 NotTransacted,
21 NoSmartcard,
22 ProtoMismatch,
23 SystemCancelled,
24 NotReady,
25 Cancelled,
26 InsufficientBuffer,
27 InvalidHandle,
28 InvalidParameter,
29 InvalidValue,
30 NoMemory,
31 Timeout,
32 UnknownReader,
33 UnsupportedFeature,
34 NoReadersAvailable,
35 ServiceStopped,
36 NoService,
37 CommError,
38 InternalError,
39 ServerTooBusy,
40 Unexpected,
41 Shutdown,
42 UnknownCard,
43 Unknown,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
49pub enum ShareMode {
50 #[default]
51 Shared,
52 Exclusive,
53 Direct,
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
59pub enum Disposition {
60 #[default]
61 LeaveCard,
62 ResetCard,
63 UnpowerCard,
64 EjectCard,
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
70pub enum ConnectionState {
71 #[default]
72 Absent,
73 Present,
74 Swallowed,
75 Powered,
76 Negotiable,
77 Specific,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize, Default)]
83#[serde(rename_all = "camelCase")]
84pub struct ReaderStateFlags {
85
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub unaware: Option<bool>,
88
89 #[serde(skip_serializing_if = "Option::is_none")]
90 pub ignore: Option<bool>,
91
92 #[serde(skip_serializing_if = "Option::is_none")]
93 pub changed: Option<bool>,
94
95 #[serde(skip_serializing_if = "Option::is_none")]
96 pub unknown: Option<bool>,
97
98 #[serde(skip_serializing_if = "Option::is_none")]
99 pub unavailable: Option<bool>,
100
101 #[serde(skip_serializing_if = "Option::is_none")]
102 pub empty: Option<bool>,
103
104 #[serde(skip_serializing_if = "Option::is_none")]
105 pub present: Option<bool>,
106
107 #[serde(skip_serializing_if = "Option::is_none")]
108 pub exclusive: Option<bool>,
109
110 #[serde(skip_serializing_if = "Option::is_none")]
111 pub inuse: Option<bool>,
112
113 #[serde(skip_serializing_if = "Option::is_none")]
114 pub mute: Option<bool>,
115
116 #[serde(skip_serializing_if = "Option::is_none")]
117 pub unpowered: Option<bool>,
118}
119
120#[derive(Debug, Clone, Serialize, Deserialize, Default)]
123#[serde(rename_all = "camelCase")]
124pub struct ProtocolSet {
125
126 #[serde(skip_serializing_if = "Option::is_none")]
127 pub t0: Option<bool>,
128
129 #[serde(skip_serializing_if = "Option::is_none")]
130 pub t1: Option<bool>,
131
132 #[serde(skip_serializing_if = "Option::is_none")]
133 pub raw: Option<bool>,
134}
135
136#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
139pub enum Protocol {
140 #[default]
141 T0,
142 T1,
143 Raw,
144}
145
146
147#[derive(Debug, Clone, Serialize, Deserialize, Default)]
148#[serde(rename_all = "camelCase")]
149pub struct ReaderStateIn {
150
151 pub reader: String,
152
153 pub currentState: ReaderStateFlags,
154
155 pub currentInsertionCount: u64,
156}
157
158
159#[derive(Debug, Clone, Serialize, Deserialize, Default)]
160#[serde(rename_all = "camelCase")]
161pub struct ReaderStateOut {
162
163 pub reader: String,
164
165 pub eventState: ReaderStateFlags,
166
167 pub eventCount: u64,
168
169 pub atr: String,
170}
171
172#[derive(Debug, Clone, Serialize, Deserialize, Default)]
179#[serde(rename_all = "camelCase")]
180pub struct ReportEstablishContextResultParams {
181
182 pub requestId: String,
183
184 pub contextId: u64,
185}
186
187#[derive(Debug, Clone, Serialize, Deserialize, Default)]
194#[serde(rename_all = "camelCase")]
195pub struct ReportReleaseContextResultParams {
196
197 pub requestId: String,
198}
199
200#[derive(Debug, Clone, Serialize, Deserialize, Default)]
207#[serde(rename_all = "camelCase")]
208pub struct ReportListReadersResultParams {
209
210 pub requestId: String,
211
212 pub readers: Vec<String>,
213}
214
215#[derive(Debug, Clone, Serialize, Deserialize, Default)]
222#[serde(rename_all = "camelCase")]
223pub struct ReportGetStatusChangeResultParams {
224
225 pub requestId: String,
226
227 pub readerStates: Vec<ReaderStateOut>,
228}
229
230#[derive(Debug, Clone, Serialize, Deserialize, Default)]
238#[serde(rename_all = "camelCase")]
239pub struct ReportBeginTransactionResultParams {
240
241 pub requestId: String,
242
243 pub handle: i64,
244}
245
246#[derive(Debug, Clone, Serialize, Deserialize, Default)]
267#[serde(rename_all = "camelCase")]
268pub struct ReportPlainResultParams {
269
270 pub requestId: String,
271}
272
273#[derive(Debug, Clone, Serialize, Deserialize, Default)]
280#[serde(rename_all = "camelCase")]
281pub struct ReportConnectResultParams {
282
283 pub requestId: String,
284
285 pub handle: i64,
286
287 #[serde(skip_serializing_if = "Option::is_none")]
288 pub activeProtocol: Option<Protocol>,
289}
290
291#[derive(Debug, Clone, Serialize, Deserialize, Default)]
308#[serde(rename_all = "camelCase")]
309pub struct ReportDataResultParams {
310
311 pub requestId: String,
312
313 pub data: String,
314}
315
316#[derive(Debug, Clone, Serialize, Deserialize, Default)]
323#[serde(rename_all = "camelCase")]
324pub struct ReportStatusResultParams {
325
326 pub requestId: String,
327
328 pub readerName: String,
329
330 pub state: ConnectionState,
331
332 pub atr: String,
333
334 #[serde(skip_serializing_if = "Option::is_none")]
335 pub protocol: Option<Protocol>,
336}
337
338#[derive(Debug, Clone, Serialize, Deserialize, Default)]
341#[serde(rename_all = "camelCase")]
342pub struct ReportErrorParams {
343
344 pub requestId: String,
345
346 pub resultCode: ResultCode,
347}