1+ use paperclip:: actix:: Apiv2Schema ;
12use serde:: { Deserialize , Serialize } ;
23use std:: {
34 collections:: { hash_map:: DefaultHasher , HashMap } ,
@@ -59,13 +60,13 @@ enum SourceType {
5960 Serial ( SerialStream ) ,
6061}
6162
62- #[ derive( Clone , Debug , Deserialize , Serialize , Hash ) ]
63+ #[ derive( Clone , Debug , Deserialize , Serialize , Hash , Apiv2Schema ) ]
6364pub struct SourceUdpStruct {
6465 pub ip : Ipv4Addr ,
6566 pub port : u16 ,
6667}
6768
68- #[ derive( Clone , Debug , Deserialize , Serialize , Hash ) ]
69+ #[ derive( Clone , Debug , Deserialize , Serialize , Hash , Apiv2Schema ) ]
6970pub struct SourceSerialStruct {
7071 pub path : String ,
7172 pub baudrate : u32 ,
@@ -92,9 +93,9 @@ pub struct ManagerActorHandler {
9293 pub sender : mpsc:: Sender < ManagerActorRequest > ,
9394}
9495
95- #[ derive( Debug , Serialize , Deserialize , Clone ) ]
96+ #[ derive( Debug , Serialize , Deserialize , Clone , Apiv2Schema ) ]
9697pub enum Answer {
97- Ping ( PingAnswer ) ,
98+ DeviceMessage ( DeviceAnswer ) ,
9899 #[ serde( skip) ]
99100 InnerDeviceHandler ( DeviceActorHandler ) ,
100101 DeviceInfo ( Vec < DeviceInfo > ) ,
@@ -112,12 +113,13 @@ pub enum ManagerError {
112113}
113114
114115#[ derive( Debug , Serialize , Deserialize , Clone ) ]
115- pub struct PingAnswer {
116- pub answer : Result < crate :: device:: devices:: PingAnswer , crate :: device:: devices:: DeviceError > ,
116+ pub struct DeviceAnswer {
117+ #[ serde( flatten) ]
118+ pub answer : crate :: device:: devices:: PingAnswer ,
117119 pub device_id : Uuid ,
118120}
119121
120- #[ derive( Debug , Clone , Serialize , Deserialize ) ]
122+ #[ derive( Debug , Clone , Serialize , Deserialize , Apiv2Schema ) ]
121123pub enum Request {
122124 Create ( CreateStruct ) ,
123125 Delete ( Uuid ) ,
@@ -422,8 +424,8 @@ impl ManagerActorHandler {
422424 match result {
423425 Ok ( result) => {
424426 info ! ( "Handling Ping request: {:?}: Success" , request) ;
425- Ok ( Answer :: Ping ( PingAnswer {
426- answer : Ok ( result) ,
427+ Ok ( Answer :: DeviceMessage ( DeviceAnswer {
428+ answer : result,
427429 device_id : request. target ,
428430 } ) )
429431 }
0 commit comments