11use paperclip:: actix:: Apiv2Schema ;
22use serde:: { Deserialize , Serialize } ;
3+ use ts_rs:: TS ;
34use std:: {
45 collections:: { hash_map:: DefaultHasher , HashMap } ,
56 hash:: { Hash , Hasher } ,
@@ -56,15 +57,15 @@ impl Drop for Device {
5657 }
5758}
5859
59- #[ derive( Debug , Clone , PartialEq , Serialize , Deserialize ) ]
60+ #[ derive( Debug , Clone , PartialEq , Serialize , Deserialize , TS ) ]
6061pub enum DeviceSelection {
6162 Common ,
6263 Ping1D ,
6364 Ping360 ,
6465 Auto ,
6566}
6667
67- #[ derive( Debug , Clone , Deserialize , Serialize , Hash ) ]
68+ #[ derive( Debug , Clone , Deserialize , Serialize , Hash , TS ) ]
6869pub enum SourceSelection {
6970 UdpStream ( SourceUdpStruct ) ,
7071 SerialStream ( SourceSerialStruct ) ,
@@ -75,13 +76,13 @@ enum SourceType {
7576 Serial ( SerialStream ) ,
7677}
7778
78- #[ derive( Clone , Debug , Deserialize , Serialize , Hash , Apiv2Schema ) ]
79+ #[ derive( Clone , Debug , Deserialize , Serialize , Hash , Apiv2Schema , TS ) ]
7980pub struct SourceUdpStruct {
8081 pub ip : Ipv4Addr ,
8182 pub port : u16 ,
8283}
8384
84- #[ derive( Clone , Debug , Deserialize , Serialize , Hash , Apiv2Schema ) ]
85+ #[ derive( Clone , Debug , Deserialize , Serialize , Hash , Apiv2Schema , TS ) ]
8586pub struct SourceSerialStruct {
8687 pub path : String ,
8788 pub baudrate : u32 ,
@@ -137,7 +138,7 @@ pub struct DeviceAnswer {
137138 pub device_id : Uuid ,
138139}
139140
140- #[ derive( Debug , Clone , Serialize , Deserialize , Apiv2Schema ) ]
141+ #[ derive( Debug , Clone , Serialize , Deserialize , Apiv2Schema , TS ) ]
141142#[ serde( tag = "type" , content = "payload" ) ]
142143pub enum Request {
143144 Create ( CreateStruct ) ,
@@ -151,7 +152,7 @@ pub enum Request {
151152 DisableContinuousMode ( UuidWrapper ) ,
152153}
153154
154- #[ derive( Debug , Clone , Serialize , Deserialize ) ]
155+ #[ derive( Debug , Clone , Serialize , Deserialize , TS ) ]
155156pub struct UuidWrapper {
156157 pub uuid : Uuid ,
157158}
@@ -174,13 +175,13 @@ impl From<UuidWrapper> for Uuid {
174175 }
175176}
176177
177- #[ derive( Debug , Clone , Serialize , Deserialize ) ]
178+ #[ derive( Debug , Clone , Serialize , Deserialize , TS ) ]
178179pub struct CreateStruct {
179180 pub source : SourceSelection ,
180181 pub device_selection : DeviceSelection ,
181182}
182183
183- #[ derive( Debug , Clone , Serialize , Deserialize ) ]
184+ #[ derive( Debug , Clone , Serialize , Deserialize , TS ) ]
184185pub struct DeviceRequestStruct {
185186 pub uuid : Uuid ,
186187 pub device_request : crate :: device:: devices:: PingRequest ,
0 commit comments