1
1
use paperclip:: actix:: Apiv2Schema ;
2
2
use serde:: { Deserialize , Serialize } ;
3
+ use ts_rs:: TS ;
3
4
use std:: {
4
5
collections:: { hash_map:: DefaultHasher , HashMap } ,
5
6
hash:: { Hash , Hasher } ,
@@ -42,6 +43,7 @@ impl Device {
42
43
}
43
44
44
45
#[ derive( Debug , Clone , PartialEq , Serialize , Deserialize ) ]
46
+ #[ derive( TS ) ]
45
47
pub enum DeviceSelection {
46
48
Common ,
47
49
Ping1D ,
@@ -50,6 +52,7 @@ pub enum DeviceSelection {
50
52
}
51
53
52
54
#[ derive( Debug , Clone , Deserialize , Serialize , Hash ) ]
55
+ #[ derive( TS ) ]
53
56
pub enum SourceSelection {
54
57
UdpStream ( SourceUdpStruct ) ,
55
58
SerialStream ( SourceSerialStruct ) ,
@@ -61,12 +64,14 @@ enum SourceType {
61
64
}
62
65
63
66
#[ derive( Clone , Debug , Deserialize , Serialize , Hash , Apiv2Schema ) ]
67
+ #[ derive( TS ) ]
64
68
pub struct SourceUdpStruct {
65
69
pub ip : Ipv4Addr ,
66
70
pub port : u16 ,
67
71
}
68
72
69
73
#[ derive( Clone , Debug , Deserialize , Serialize , Hash , Apiv2Schema ) ]
74
+ #[ derive( TS ) ]
70
75
pub struct SourceSerialStruct {
71
76
pub path : String ,
72
77
pub baudrate : u32 ,
@@ -120,6 +125,9 @@ pub struct DeviceAnswer {
120
125
}
121
126
122
127
#[ derive( Debug , Clone , Serialize , Deserialize , Apiv2Schema ) ]
128
+ #[ derive( TS ) ]
129
+ // #[ts(rename_all = "lowercase")]
130
+ #[ ts( export, export_to = "RequestModels.ts" ) ]
123
131
pub enum Request {
124
132
Create ( CreateStruct ) ,
125
133
Delete ( Uuid ) ,
@@ -131,12 +139,14 @@ pub enum Request {
131
139
}
132
140
133
141
#[ derive( Debug , Clone , Serialize , Deserialize ) ]
142
+ #[ derive( TS ) ]
134
143
pub struct CreateStruct {
135
144
pub source : SourceSelection ,
136
145
pub device_selection : DeviceSelection ,
137
146
}
138
147
139
148
#[ derive( Debug , Clone , Serialize , Deserialize ) ]
149
+ #[ derive( TS ) ]
140
150
pub struct DeviceRequestStruct {
141
151
pub target : Uuid ,
142
152
pub request : crate :: device:: devices:: PingRequest ,
0 commit comments