1use super::maxwell_protocol::*;
2use actix::Message as ActixMessage;
3use bytes::{BufMut, Bytes, BytesMut};
4pub use prost::DecodeError;
5use thiserror::Error as ThisError;
6use prost::Message as ProstMessage;
7use std::fmt::{Debug, Formatter, Result as FmtResult};
8use std::result::Result as StdResult;
9
10pub enum ProtocolMsg {
11 None,
12 PingReq(PingReq),
13 PingRep(PingRep),
14 OkRep(OkRep),
15 ErrorRep(ErrorRep),
16 Ok2Rep(Ok2Rep),
17 Error2Rep(Error2Rep),
18 PushReq(PushReq),
19 PushRep(PushRep),
20 PullReq(PullReq),
21 PullRep(PullRep),
22 ReqReq(ReqReq),
23 ReqRep(ReqRep),
24 AuthReq(AuthReq),
25 AuthRep(AuthRep),
26 RegisterFrontendReq(RegisterFrontendReq),
27 RegisterFrontendRep(RegisterFrontendRep),
28 RegisterBackendReq(RegisterBackendReq),
29 RegisterBackendRep(RegisterBackendRep),
30 RegisterServiceReq(RegisterServiceReq),
31 RegisterServiceRep(RegisterServiceRep),
32 SetRoutesReq(SetRoutesReq),
33 SetRoutesRep(SetRoutesRep),
34 GetRoutesReq(GetRoutesReq),
35 GetRoutesRep(GetRoutesRep),
36 GetTopicDistChecksumReq(GetTopicDistChecksumReq),
37 GetTopicDistChecksumRep(GetTopicDistChecksumRep),
38 GetRouteDistChecksumReq(GetRouteDistChecksumReq),
39 GetRouteDistChecksumRep(GetRouteDistChecksumRep),
40 PickFrontendReq(PickFrontendReq),
41 PickFrontendRep(PickFrontendRep),
42 PickFrontendsReq(PickFrontendsReq),
43 PickFrontendsRep(PickFrontendsRep),
44 LocateTopicReq(LocateTopicReq),
45 LocateTopicRep(LocateTopicRep),
46 ResolveIpReq(ResolveIpReq),
47 ResolveIpRep(ResolveIpRep),
48}
49
50impl Debug for ProtocolMsg {
51 fn fmt(&self, f: &mut Formatter) -> FmtResult {
52 match self {
53 ProtocolMsg::None => write!(f, "None"),
54 ProtocolMsg::PingReq(msg) => write!(f, "{:?}", msg),
55 ProtocolMsg::PingRep(msg) => write!(f, "{:?}", msg),
56 ProtocolMsg::OkRep(msg) => write!(f, "{:?}", msg),
57 ProtocolMsg::ErrorRep(msg) => write!(f, "{:?}", msg),
58 ProtocolMsg::Ok2Rep(msg) => write!(f, "{:?}", msg),
59 ProtocolMsg::Error2Rep(msg) => write!(f, "{:?}", msg),
60 ProtocolMsg::PushReq(msg) => write!(f, "{:?}", msg),
61 ProtocolMsg::PushRep(msg) => write!(f, "{:?}", msg),
62 ProtocolMsg::PullReq(msg) => write!(f, "{:?}", msg),
63 ProtocolMsg::PullRep(msg) => write!(f, "{:?}", msg),
64 ProtocolMsg::ReqReq(msg) => write!(f, "{:?}", msg),
65 ProtocolMsg::ReqRep(msg) => write!(f, "{:?}", msg),
66 ProtocolMsg::AuthReq(msg) => write!(f, "{:?}", msg),
67 ProtocolMsg::AuthRep(msg) => write!(f, "{:?}", msg),
68 ProtocolMsg::RegisterFrontendReq(msg) => write!(f, "{:?}", msg),
69 ProtocolMsg::RegisterFrontendRep(msg) => write!(f, "{:?}", msg),
70 ProtocolMsg::RegisterBackendReq(msg) => write!(f, "{:?}", msg),
71 ProtocolMsg::RegisterBackendRep(msg) => write!(f, "{:?}", msg),
72 ProtocolMsg::RegisterServiceReq(msg) => write!(f, "{:?}", msg),
73 ProtocolMsg::RegisterServiceRep(msg) => write!(f, "{:?}", msg),
74 ProtocolMsg::SetRoutesReq(msg) => write!(f, "{:?}", msg),
75 ProtocolMsg::SetRoutesRep(msg) => write!(f, "{:?}", msg),
76 ProtocolMsg::GetRoutesReq(msg) => write!(f, "{:?}", msg),
77 ProtocolMsg::GetRoutesRep(msg) => write!(f, "{:?}", msg),
78 ProtocolMsg::GetTopicDistChecksumReq(msg) => write!(f, "{:?}", msg),
79 ProtocolMsg::GetTopicDistChecksumRep(msg) => write!(f, "{:?}", msg),
80 ProtocolMsg::GetRouteDistChecksumReq(msg) => write!(f, "{:?}", msg),
81 ProtocolMsg::GetRouteDistChecksumRep(msg) => write!(f, "{:?}", msg),
82 ProtocolMsg::PickFrontendReq(msg) => write!(f, "{:?}", msg),
83 ProtocolMsg::PickFrontendRep(msg) => write!(f, "{:?}", msg),
84 ProtocolMsg::PickFrontendsReq(msg) => write!(f, "{:?}", msg),
85 ProtocolMsg::PickFrontendsRep(msg) => write!(f, "{:?}", msg),
86 ProtocolMsg::LocateTopicReq(msg) => write!(f, "{:?}", msg),
87 ProtocolMsg::LocateTopicRep(msg) => write!(f, "{:?}", msg),
88 ProtocolMsg::ResolveIpReq(msg) => write!(f, "{:?}", msg),
89 ProtocolMsg::ResolveIpRep(msg) => write!(f, "{:?}", msg),
90 }
91 }
92}
93
94impl ProtocolMsg {
95 #[inline]
96 pub fn is_none(&self) -> bool {
97 match self {
98 Self::None => true,
99 _ => false,
100 }
101 }
102
103 #[inline]
104 pub fn is_some(&self) -> bool {
105 match self {
106 Self::None => false,
107 _ => true,
108 }
109 }
110}
111
112#[derive(Debug, ThisError)]
113pub enum HandleError<M> {
114 #[error("The mailbox was full")]
115 MailboxFull,
116 #[error("The mailbox has closed")]
117 MailboxClosed,
118 #[error("Message delivery timed out")]
119 Timeout,
120 #[error("Error occured: code: {code}, desc: {desc}")]
121 Any { code: i32, desc: String, msg: M },
122}
123
124impl ActixMessage for ProtocolMsg {
125 type Result = StdResult<ProtocolMsg, HandleError<ProtocolMsg>>;
126}
127
128impl ActixMessage for PingReq {
129 type Result = StdResult<PingRep, HandleError<PingReq>>;
130}
131
132impl ActixMessage for PushReq {
133 type Result = StdResult<PushRep, HandleError<PushReq>>;
134}
135
136impl ActixMessage for PullReq {
137 type Result = StdResult<PullRep, HandleError<PullReq>>;
138}
139
140impl ActixMessage for ReqReq {
141 type Result = StdResult<ReqRep, HandleError<ReqReq>>;
142}
143
144impl ActixMessage for AuthReq {
145 type Result = StdResult<AuthRep, HandleError<AuthReq>>;
146}
147
148impl ActixMessage for RegisterFrontendReq {
149 type Result = StdResult<RegisterFrontendRep, HandleError<RegisterFrontendReq>>;
150}
151
152impl ActixMessage for RegisterBackendReq {
153 type Result = StdResult<RegisterBackendRep, HandleError<RegisterBackendReq>>;
154}
155
156impl ActixMessage for RegisterServiceReq {
157 type Result = StdResult<RegisterServiceRep, HandleError<RegisterServiceReq>>;
158}
159
160impl ActixMessage for SetRoutesReq {
161 type Result = StdResult<SetRoutesRep, HandleError<SetRoutesReq>>;
162}
163
164impl ActixMessage for GetRoutesReq {
165 type Result = StdResult<GetRoutesRep, HandleError<GetRoutesReq>>;
166}
167
168impl ActixMessage for GetTopicDistChecksumReq {
169 type Result = StdResult<GetTopicDistChecksumRep, HandleError<GetTopicDistChecksumReq>>;
170}
171
172impl ActixMessage for GetRouteDistChecksumReq {
173 type Result = StdResult<GetRouteDistChecksumRep, HandleError<GetRouteDistChecksumReq>>;
174}
175
176impl ActixMessage for PickFrontendReq {
177 type Result = StdResult<PickFrontendRep, HandleError<PickFrontendReq>>;
178}
179
180impl ActixMessage for PickFrontendsReq {
181 type Result = StdResult<PickFrontendsRep, HandleError<PickFrontendsReq>>;
182}
183
184impl ActixMessage for LocateTopicReq {
185 type Result = StdResult<LocateTopicRep, HandleError<LocateTopicReq>>;
186}
187
188impl ActixMessage for ResolveIpReq {
189 type Result = StdResult<ResolveIpRep, HandleError<ResolveIpReq>>;
190}
191
192pub trait IntoEnum {
193 fn into_enum(self) -> ProtocolMsg;
194}
195
196impl IntoEnum for PingReq {
197 #[inline]
198 fn into_enum(self) -> ProtocolMsg {
199 ProtocolMsg::PingReq(self)
200 }
201}
202
203impl IntoEnum for PingRep {
204 #[inline]
205 fn into_enum(self) -> ProtocolMsg {
206 ProtocolMsg::PingRep(self)
207 }
208}
209
210impl IntoEnum for OkRep {
211 #[inline]
212 fn into_enum(self) -> ProtocolMsg {
213 ProtocolMsg::OkRep(self)
214 }
215}
216
217impl IntoEnum for ErrorRep {
218 #[inline]
219 fn into_enum(self) -> ProtocolMsg {
220 ProtocolMsg::ErrorRep(self)
221 }
222}
223
224impl IntoEnum for Ok2Rep {
225 #[inline]
226 fn into_enum(self) -> ProtocolMsg {
227 ProtocolMsg::Ok2Rep(self)
228 }
229}
230
231impl IntoEnum for Error2Rep {
232 #[inline]
233 fn into_enum(self) -> ProtocolMsg {
234 ProtocolMsg::Error2Rep(self)
235 }
236}
237
238impl IntoEnum for PushReq {
239 #[inline]
240 fn into_enum(self) -> ProtocolMsg {
241 ProtocolMsg::PushReq(self)
242 }
243}
244
245impl IntoEnum for PushRep {
246 #[inline]
247 fn into_enum(self) -> ProtocolMsg {
248 ProtocolMsg::PushRep(self)
249 }
250}
251
252impl IntoEnum for PullReq {
253 #[inline]
254 fn into_enum(self) -> ProtocolMsg {
255 ProtocolMsg::PullReq(self)
256 }
257}
258
259impl IntoEnum for PullRep {
260 #[inline]
261 fn into_enum(self) -> ProtocolMsg {
262 ProtocolMsg::PullRep(self)
263 }
264}
265
266impl IntoEnum for ReqReq {
267 #[inline]
268 fn into_enum(self) -> ProtocolMsg {
269 ProtocolMsg::ReqReq(self)
270 }
271}
272
273impl IntoEnum for ReqRep {
274 #[inline]
275 fn into_enum(self) -> ProtocolMsg {
276 ProtocolMsg::ReqRep(self)
277 }
278}
279
280impl IntoEnum for AuthReq {
281 #[inline]
282 fn into_enum(self) -> ProtocolMsg {
283 ProtocolMsg::AuthReq(self)
284 }
285}
286
287impl IntoEnum for AuthRep {
288 #[inline]
289 fn into_enum(self) -> ProtocolMsg {
290 ProtocolMsg::AuthRep(self)
291 }
292}
293
294impl IntoEnum for RegisterFrontendReq {
295 #[inline]
296 fn into_enum(self) -> ProtocolMsg {
297 ProtocolMsg::RegisterFrontendReq(self)
298 }
299}
300
301impl IntoEnum for RegisterFrontendRep {
302 #[inline]
303 fn into_enum(self) -> ProtocolMsg {
304 ProtocolMsg::RegisterFrontendRep(self)
305 }
306}
307
308impl IntoEnum for RegisterBackendReq {
309 #[inline]
310 fn into_enum(self) -> ProtocolMsg {
311 ProtocolMsg::RegisterBackendReq(self)
312 }
313}
314
315impl IntoEnum for RegisterBackendRep {
316 #[inline]
317 fn into_enum(self) -> ProtocolMsg {
318 ProtocolMsg::RegisterBackendRep(self)
319 }
320}
321
322impl IntoEnum for RegisterServiceReq {
323 #[inline]
324 fn into_enum(self) -> ProtocolMsg {
325 ProtocolMsg::RegisterServiceReq(self)
326 }
327}
328
329impl IntoEnum for RegisterServiceRep {
330 #[inline]
331 fn into_enum(self) -> ProtocolMsg {
332 ProtocolMsg::RegisterServiceRep(self)
333 }
334}
335
336impl IntoEnum for SetRoutesReq {
337 #[inline]
338 fn into_enum(self) -> ProtocolMsg {
339 ProtocolMsg::SetRoutesReq(self)
340 }
341}
342
343impl IntoEnum for SetRoutesRep {
344 #[inline]
345 fn into_enum(self) -> ProtocolMsg {
346 ProtocolMsg::SetRoutesRep(self)
347 }
348}
349
350impl IntoEnum for GetRoutesReq {
351 #[inline]
352 fn into_enum(self) -> ProtocolMsg {
353 ProtocolMsg::GetRoutesReq(self)
354 }
355}
356
357impl IntoEnum for GetRoutesRep {
358 #[inline]
359 fn into_enum(self) -> ProtocolMsg {
360 ProtocolMsg::GetRoutesRep(self)
361 }
362}
363
364impl IntoEnum for GetTopicDistChecksumReq {
365 #[inline]
366 fn into_enum(self) -> ProtocolMsg {
367 ProtocolMsg::GetTopicDistChecksumReq(self)
368 }
369}
370
371impl IntoEnum for GetTopicDistChecksumRep {
372 #[inline]
373 fn into_enum(self) -> ProtocolMsg {
374 ProtocolMsg::GetTopicDistChecksumRep(self)
375 }
376}
377
378impl IntoEnum for GetRouteDistChecksumReq {
379 #[inline]
380 fn into_enum(self) -> ProtocolMsg {
381 ProtocolMsg::GetRouteDistChecksumReq(self)
382 }
383}
384
385impl IntoEnum for GetRouteDistChecksumRep {
386 #[inline]
387 fn into_enum(self) -> ProtocolMsg {
388 ProtocolMsg::GetRouteDistChecksumRep(self)
389 }
390}
391
392impl IntoEnum for PickFrontendReq {
393 #[inline]
394 fn into_enum(self) -> ProtocolMsg {
395 ProtocolMsg::PickFrontendReq(self)
396 }
397}
398
399impl IntoEnum for PickFrontendRep {
400 #[inline]
401 fn into_enum(self) -> ProtocolMsg {
402 ProtocolMsg::PickFrontendRep(self)
403 }
404}
405
406impl IntoEnum for PickFrontendsReq {
407 #[inline]
408 fn into_enum(self) -> ProtocolMsg {
409 ProtocolMsg::PickFrontendsReq(self)
410 }
411}
412
413impl IntoEnum for PickFrontendsRep {
414 #[inline]
415 fn into_enum(self) -> ProtocolMsg {
416 ProtocolMsg::PickFrontendsRep(self)
417 }
418}
419
420impl IntoEnum for LocateTopicReq {
421 #[inline]
422 fn into_enum(self) -> ProtocolMsg {
423 ProtocolMsg::LocateTopicReq(self)
424 }
425}
426
427impl IntoEnum for LocateTopicRep {
428 #[inline]
429 fn into_enum(self) -> ProtocolMsg {
430 ProtocolMsg::LocateTopicRep(self)
431 }
432}
433
434impl IntoEnum for ResolveIpReq {
435 #[inline]
436 fn into_enum(self) -> ProtocolMsg {
437 ProtocolMsg::ResolveIpReq(self)
438 }
439}
440
441impl IntoEnum for ResolveIpRep {
442 #[inline]
443 fn into_enum(self) -> ProtocolMsg {
444 ProtocolMsg::ResolveIpRep(self)
445 }
446}
447
448impl From<ProtocolMsg> for PingReq {
449 #[inline]
450 fn from(item: ProtocolMsg) -> PingReq {
451 match item {
452 ProtocolMsg::PingReq(msg) => msg,
453 _ => panic!("Unable to convert to PingReq"),
454 }
455 }
456}
457
458impl From<ProtocolMsg> for PingRep {
459 #[inline]
460 fn from(item: ProtocolMsg) -> PingRep {
461 match item {
462 ProtocolMsg::PingRep(msg) => msg,
463 _ => panic!("Unable to convert to PingRep"),
464 }
465 }
466}
467
468impl From<ProtocolMsg> for OkRep {
469 #[inline]
470 fn from(item: ProtocolMsg) -> OkRep {
471 match item {
472 ProtocolMsg::OkRep(msg) => msg,
473 _ => panic!("Unable to convert to OkRep"),
474 }
475 }
476}
477
478impl From<ProtocolMsg> for ErrorRep {
479 #[inline]
480 fn from(item: ProtocolMsg) -> ErrorRep {
481 match item {
482 ProtocolMsg::ErrorRep(msg) => msg,
483 _ => panic!("Unable to convert to ErrorRep"),
484 }
485 }
486}
487
488impl From<ProtocolMsg> for Ok2Rep {
489 #[inline]
490 fn from(item: ProtocolMsg) -> Ok2Rep {
491 match item {
492 ProtocolMsg::Ok2Rep(msg) => msg,
493 _ => panic!("Unable to convert to Ok2Rep"),
494 }
495 }
496}
497
498impl From<ProtocolMsg> for Error2Rep {
499 #[inline]
500 fn from(item: ProtocolMsg) -> Error2Rep {
501 match item {
502 ProtocolMsg::Error2Rep(msg) => msg,
503 _ => panic!("Unable to convert to Error2Rep"),
504 }
505 }
506}
507
508impl From<ProtocolMsg> for PushReq {
509 #[inline]
510 fn from(item: ProtocolMsg) -> PushReq {
511 match item {
512 ProtocolMsg::PushReq(msg) => msg,
513 _ => panic!("Unable to convert to PushReq"),
514 }
515 }
516}
517
518impl From<ProtocolMsg> for PushRep {
519 #[inline]
520 fn from(item: ProtocolMsg) -> PushRep {
521 match item {
522 ProtocolMsg::PushRep(msg) => msg,
523 _ => panic!("Unable to convert to PushRep"),
524 }
525 }
526}
527
528impl From<ProtocolMsg> for PullReq {
529 #[inline]
530 fn from(item: ProtocolMsg) -> PullReq {
531 match item {
532 ProtocolMsg::PullReq(msg) => msg,
533 _ => panic!("Unable to convert to PullReq"),
534 }
535 }
536}
537
538impl From<ProtocolMsg> for PullRep {
539 #[inline]
540 fn from(item: ProtocolMsg) -> PullRep {
541 match item {
542 ProtocolMsg::PullRep(msg) => msg,
543 _ => panic!("Unable to convert to PullRep"),
544 }
545 }
546}
547
548impl From<ProtocolMsg> for ReqReq {
549 #[inline]
550 fn from(item: ProtocolMsg) -> ReqReq {
551 match item {
552 ProtocolMsg::ReqReq(msg) => msg,
553 _ => panic!("Unable to convert to ReqReq"),
554 }
555 }
556}
557
558impl From<ProtocolMsg> for ReqRep {
559 #[inline]
560 fn from(item: ProtocolMsg) -> ReqRep {
561 match item {
562 ProtocolMsg::ReqRep(msg) => msg,
563 _ => panic!("Unable to convert to ReqRep"),
564 }
565 }
566}
567
568impl From<ProtocolMsg> for AuthReq {
569 #[inline]
570 fn from(item: ProtocolMsg) -> AuthReq {
571 match item {
572 ProtocolMsg::AuthReq(msg) => msg,
573 _ => panic!("Unable to convert to AuthReq"),
574 }
575 }
576}
577
578impl From<ProtocolMsg> for AuthRep {
579 #[inline]
580 fn from(item: ProtocolMsg) -> AuthRep {
581 match item {
582 ProtocolMsg::AuthRep(msg) => msg,
583 _ => panic!("Unable to convert to AuthRep"),
584 }
585 }
586}
587
588impl From<ProtocolMsg> for RegisterFrontendReq {
589 #[inline]
590 fn from(item: ProtocolMsg) -> RegisterFrontendReq {
591 match item {
592 ProtocolMsg::RegisterFrontendReq(msg) => msg,
593 _ => panic!("Unable to convert to RegisterFrontendReq"),
594 }
595 }
596}
597
598impl From<ProtocolMsg> for RegisterFrontendRep {
599 #[inline]
600 fn from(item: ProtocolMsg) -> RegisterFrontendRep {
601 match item {
602 ProtocolMsg::RegisterFrontendRep(msg) => msg,
603 _ => panic!("Unable to convert to RegisterFrontendRep"),
604 }
605 }
606}
607
608impl From<ProtocolMsg> for RegisterBackendReq {
609 #[inline]
610 fn from(item: ProtocolMsg) -> RegisterBackendReq {
611 match item {
612 ProtocolMsg::RegisterBackendReq(msg) => msg,
613 _ => panic!("Unable to convert to RegisterBackendReq"),
614 }
615 }
616}
617
618impl From<ProtocolMsg> for RegisterBackendRep {
619 #[inline]
620 fn from(item: ProtocolMsg) -> RegisterBackendRep {
621 match item {
622 ProtocolMsg::RegisterBackendRep(msg) => msg,
623 _ => panic!("Unable to convert to RegisterBackendRep"),
624 }
625 }
626}
627
628impl From<ProtocolMsg> for RegisterServiceReq {
629 #[inline]
630 fn from(item: ProtocolMsg) -> RegisterServiceReq {
631 match item {
632 ProtocolMsg::RegisterServiceReq(msg) => msg,
633 _ => panic!("Unable to convert to RegisterServiceReq"),
634 }
635 }
636}
637
638impl From<ProtocolMsg> for RegisterServiceRep {
639 #[inline]
640 fn from(item: ProtocolMsg) -> RegisterServiceRep {
641 match item {
642 ProtocolMsg::RegisterServiceRep(msg) => msg,
643 _ => panic!("Unable to convert to RegisterServiceRep"),
644 }
645 }
646}
647
648impl From<ProtocolMsg> for SetRoutesReq {
649 #[inline]
650 fn from(item: ProtocolMsg) -> SetRoutesReq {
651 match item {
652 ProtocolMsg::SetRoutesReq(msg) => msg,
653 _ => panic!("Unable to convert to SetRoutesReq"),
654 }
655 }
656}
657
658impl From<ProtocolMsg> for SetRoutesRep {
659 #[inline]
660 fn from(item: ProtocolMsg) -> SetRoutesRep {
661 match item {
662 ProtocolMsg::SetRoutesRep(msg) => msg,
663 _ => panic!("Unable to convert to SetRoutesRep"),
664 }
665 }
666}
667
668impl From<ProtocolMsg> for GetRoutesReq {
669 #[inline]
670 fn from(item: ProtocolMsg) -> GetRoutesReq {
671 match item {
672 ProtocolMsg::GetRoutesReq(msg) => msg,
673 _ => panic!("Unable to convert to GetRoutesReq"),
674 }
675 }
676}
677
678impl From<ProtocolMsg> for GetRoutesRep {
679 #[inline]
680 fn from(item: ProtocolMsg) -> GetRoutesRep {
681 match item {
682 ProtocolMsg::GetRoutesRep(msg) => msg,
683 _ => panic!("Unable to convert to GetRoutesRep"),
684 }
685 }
686}
687
688impl From<ProtocolMsg> for GetTopicDistChecksumReq {
689 #[inline]
690 fn from(item: ProtocolMsg) -> GetTopicDistChecksumReq {
691 match item {
692 ProtocolMsg::GetTopicDistChecksumReq(msg) => msg,
693 _ => panic!("Unable to convert to GetTopicDistChecksumReq"),
694 }
695 }
696}
697
698impl From<ProtocolMsg> for GetTopicDistChecksumRep {
699 #[inline]
700 fn from(item: ProtocolMsg) -> GetTopicDistChecksumRep {
701 match item {
702 ProtocolMsg::GetTopicDistChecksumRep(msg) => msg,
703 _ => panic!("Unable to convert to GetTopicDistChecksumRep"),
704 }
705 }
706}
707
708impl From<ProtocolMsg> for GetRouteDistChecksumReq {
709 #[inline]
710 fn from(item: ProtocolMsg) -> GetRouteDistChecksumReq {
711 match item {
712 ProtocolMsg::GetRouteDistChecksumReq(msg) => msg,
713 _ => panic!("Unable to convert to GetRouteDistChecksumReq"),
714 }
715 }
716}
717
718impl From<ProtocolMsg> for GetRouteDistChecksumRep {
719 #[inline]
720 fn from(item: ProtocolMsg) -> GetRouteDistChecksumRep {
721 match item {
722 ProtocolMsg::GetRouteDistChecksumRep(msg) => msg,
723 _ => panic!("Unable to convert to GetRouteDistChecksumRep"),
724 }
725 }
726}
727
728impl From<ProtocolMsg> for PickFrontendReq {
729 #[inline]
730 fn from(item: ProtocolMsg) -> PickFrontendReq {
731 match item {
732 ProtocolMsg::PickFrontendReq(msg) => msg,
733 _ => panic!("Unable to convert to PickFrontendReq"),
734 }
735 }
736}
737
738impl From<ProtocolMsg> for PickFrontendRep {
739 #[inline]
740 fn from(item: ProtocolMsg) -> PickFrontendRep {
741 match item {
742 ProtocolMsg::PickFrontendRep(msg) => msg,
743 _ => panic!("Unable to convert to PickFrontendRep"),
744 }
745 }
746}
747
748impl From<ProtocolMsg> for PickFrontendsReq {
749 #[inline]
750 fn from(item: ProtocolMsg) -> PickFrontendsReq {
751 match item {
752 ProtocolMsg::PickFrontendsReq(msg) => msg,
753 _ => panic!("Unable to convert to PickFrontendsReq"),
754 }
755 }
756}
757
758impl From<ProtocolMsg> for PickFrontendsRep {
759 #[inline]
760 fn from(item: ProtocolMsg) -> PickFrontendsRep {
761 match item {
762 ProtocolMsg::PickFrontendsRep(msg) => msg,
763 _ => panic!("Unable to convert to PickFrontendsRep"),
764 }
765 }
766}
767
768impl From<ProtocolMsg> for LocateTopicReq {
769 #[inline]
770 fn from(item: ProtocolMsg) -> LocateTopicReq {
771 match item {
772 ProtocolMsg::LocateTopicReq(msg) => msg,
773 _ => panic!("Unable to convert to LocateTopicReq"),
774 }
775 }
776}
777
778impl From<ProtocolMsg> for LocateTopicRep {
779 #[inline]
780 fn from(item: ProtocolMsg) -> LocateTopicRep {
781 match item {
782 ProtocolMsg::LocateTopicRep(msg) => msg,
783 _ => panic!("Unable to convert to LocateTopicRep"),
784 }
785 }
786}
787
788impl From<ProtocolMsg> for ResolveIpReq {
789 #[inline]
790 fn from(item: ProtocolMsg) -> ResolveIpReq {
791 match item {
792 ProtocolMsg::ResolveIpReq(msg) => msg,
793 _ => panic!("Unable to convert to ResolveIpReq"),
794 }
795 }
796}
797
798impl From<ProtocolMsg> for ResolveIpRep {
799 #[inline]
800 fn from(item: ProtocolMsg) -> ResolveIpRep {
801 match item {
802 ProtocolMsg::ResolveIpRep(msg) => msg,
803 _ => panic!("Unable to convert to ResolveIpRep"),
804 }
805 }
806}
807
808pub trait Encode: ProstMessage + Sized {
809 fn encode_type(bytes: &mut BytesMut);
810
811 #[inline]
812 fn encode_body(&self, bytes: &mut BytesMut) {
813 if let Err(err) = self.encode(bytes) {
814 panic!("Failed to encode msg: {:?}", err);
815 }
816 }
817
818 fn encode_msg(&self) -> Bytes {
819 let size = self.encoded_len() as usize;
820 let mut bytes = BytesMut::with_capacity(size + 1);
821 Self::encode_type(&mut bytes);
822 self.encode_body(&mut bytes);
823 return bytes.freeze();
824 }
825}
826
827impl Encode for PingReq {
828 #[inline]
829 fn encode_type(bytes: &mut BytesMut) {
830 bytes.put_u8(1);
831 }
832}
833
834impl Encode for PingRep {
835 #[inline]
836 fn encode_type(bytes: &mut BytesMut) {
837 bytes.put_u8(2);
838 }
839}
840
841impl Encode for OkRep {
842 #[inline]
843 fn encode_type(bytes: &mut BytesMut) {
844 bytes.put_u8(29);
845 }
846}
847
848impl Encode for ErrorRep {
849 #[inline]
850 fn encode_type(bytes: &mut BytesMut) {
851 bytes.put_u8(30);
852 }
853}
854
855impl Encode for Ok2Rep {
856 #[inline]
857 fn encode_type(bytes: &mut BytesMut) {
858 bytes.put_u8(31);
859 }
860}
861
862impl Encode for Error2Rep {
863 #[inline]
864 fn encode_type(bytes: &mut BytesMut) {
865 bytes.put_u8(32);
866 }
867}
868
869impl Encode for PushReq {
870 #[inline]
871 fn encode_type(bytes: &mut BytesMut) {
872 bytes.put_u8(33);
873 }
874}
875
876impl Encode for PushRep {
877 #[inline]
878 fn encode_type(bytes: &mut BytesMut) {
879 bytes.put_u8(34);
880 }
881}
882
883impl Encode for PullReq {
884 #[inline]
885 fn encode_type(bytes: &mut BytesMut) {
886 bytes.put_u8(35);
887 }
888}
889
890impl Encode for PullRep {
891 #[inline]
892 fn encode_type(bytes: &mut BytesMut) {
893 bytes.put_u8(36);
894 }
895}
896
897impl Encode for ReqReq {
898 #[inline]
899 fn encode_type(bytes: &mut BytesMut) {
900 bytes.put_u8(39);
901 }
902}
903
904impl Encode for ReqRep {
905 #[inline]
906 fn encode_type(bytes: &mut BytesMut) {
907 bytes.put_u8(40);
908 }
909}
910
911impl Encode for AuthReq {
912 #[inline]
913 fn encode_type(bytes: &mut BytesMut) {
914 bytes.put_u8(41);
915 }
916}
917
918impl Encode for AuthRep {
919 #[inline]
920 fn encode_type(bytes: &mut BytesMut) {
921 bytes.put_u8(42);
922 }
923}
924
925impl Encode for RegisterFrontendReq {
926 #[inline]
927 fn encode_type(bytes: &mut BytesMut) {
928 bytes.put_u8(65);
929 }
930}
931
932impl Encode for RegisterFrontendRep {
933 #[inline]
934 fn encode_type(bytes: &mut BytesMut) {
935 bytes.put_u8(66);
936 }
937}
938
939impl Encode for RegisterBackendReq {
940 #[inline]
941 fn encode_type(bytes: &mut BytesMut) {
942 bytes.put_u8(67);
943 }
944}
945
946impl Encode for RegisterBackendRep {
947 #[inline]
948 fn encode_type(bytes: &mut BytesMut) {
949 bytes.put_u8(68);
950 }
951}
952
953impl Encode for RegisterServiceReq {
954 #[inline]
955 fn encode_type(bytes: &mut BytesMut) {
956 bytes.put_u8(69);
957 }
958}
959
960impl Encode for RegisterServiceRep {
961 #[inline]
962 fn encode_type(bytes: &mut BytesMut) {
963 bytes.put_u8(70);
964 }
965}
966
967impl Encode for SetRoutesReq {
968 #[inline]
969 fn encode_type(bytes: &mut BytesMut) {
970 bytes.put_u8(71);
971 }
972}
973
974impl Encode for SetRoutesRep {
975 #[inline]
976 fn encode_type(bytes: &mut BytesMut) {
977 bytes.put_u8(72);
978 }
979}
980
981impl Encode for GetRoutesReq {
982 #[inline]
983 fn encode_type(bytes: &mut BytesMut) {
984 bytes.put_u8(75);
985 }
986}
987
988impl Encode for GetRoutesRep {
989 #[inline]
990 fn encode_type(bytes: &mut BytesMut) {
991 bytes.put_u8(76);
992 }
993}
994
995impl Encode for GetTopicDistChecksumReq {
996 #[inline]
997 fn encode_type(bytes: &mut BytesMut) {
998 bytes.put_u8(77);
999 }
1000}
1001
1002impl Encode for GetTopicDistChecksumRep {
1003 #[inline]
1004 fn encode_type(bytes: &mut BytesMut) {
1005 bytes.put_u8(78);
1006 }
1007}
1008
1009impl Encode for GetRouteDistChecksumReq {
1010 #[inline]
1011 fn encode_type(bytes: &mut BytesMut) {
1012 bytes.put_u8(79);
1013 }
1014}
1015
1016impl Encode for GetRouteDistChecksumRep {
1017 #[inline]
1018 fn encode_type(bytes: &mut BytesMut) {
1019 bytes.put_u8(80);
1020 }
1021}
1022
1023impl Encode for PickFrontendReq {
1024 #[inline]
1025 fn encode_type(bytes: &mut BytesMut) {
1026 bytes.put_u8(81);
1027 }
1028}
1029
1030impl Encode for PickFrontendRep {
1031 #[inline]
1032 fn encode_type(bytes: &mut BytesMut) {
1033 bytes.put_u8(82);
1034 }
1035}
1036
1037impl Encode for PickFrontendsReq {
1038 #[inline]
1039 fn encode_type(bytes: &mut BytesMut) {
1040 bytes.put_u8(83);
1041 }
1042}
1043
1044impl Encode for PickFrontendsRep {
1045 #[inline]
1046 fn encode_type(bytes: &mut BytesMut) {
1047 bytes.put_u8(84);
1048 }
1049}
1050
1051impl Encode for LocateTopicReq {
1052 #[inline]
1053 fn encode_type(bytes: &mut BytesMut) {
1054 bytes.put_u8(85);
1055 }
1056}
1057
1058impl Encode for LocateTopicRep {
1059 #[inline]
1060 fn encode_type(bytes: &mut BytesMut) {
1061 bytes.put_u8(86);
1062 }
1063}
1064
1065impl Encode for ResolveIpReq {
1066 #[inline]
1067 fn encode_type(bytes: &mut BytesMut) {
1068 bytes.put_u8(121);
1069 }
1070}
1071
1072impl Encode for ResolveIpRep {
1073 #[inline]
1074 fn encode_type(bytes: &mut BytesMut) {
1075 bytes.put_u8(122);
1076 }
1077}
1078
1079pub fn encode(protocol_msg: &ProtocolMsg) -> Bytes {
1080 match protocol_msg {
1081 ProtocolMsg::None => panic!("Failed to encode ProtocolMsg::None"),
1082 ProtocolMsg::PingReq(msg) => msg.encode_msg(),
1083 ProtocolMsg::PingRep(msg) => msg.encode_msg(),
1084 ProtocolMsg::OkRep(msg) => msg.encode_msg(),
1085 ProtocolMsg::ErrorRep(msg) => msg.encode_msg(),
1086 ProtocolMsg::Ok2Rep(msg) => msg.encode_msg(),
1087 ProtocolMsg::Error2Rep(msg) => msg.encode_msg(),
1088 ProtocolMsg::PushReq(msg) => msg.encode_msg(),
1089 ProtocolMsg::PushRep(msg) => msg.encode_msg(),
1090 ProtocolMsg::PullReq(msg) => msg.encode_msg(),
1091 ProtocolMsg::PullRep(msg) => msg.encode_msg(),
1092 ProtocolMsg::ReqReq(msg) => msg.encode_msg(),
1093 ProtocolMsg::ReqRep(msg) => msg.encode_msg(),
1094 ProtocolMsg::AuthReq(msg) => msg.encode_msg(),
1095 ProtocolMsg::AuthRep(msg) => msg.encode_msg(),
1096 ProtocolMsg::RegisterFrontendReq(msg) => msg.encode_msg(),
1097 ProtocolMsg::RegisterFrontendRep(msg) => msg.encode_msg(),
1098 ProtocolMsg::RegisterBackendReq(msg) => msg.encode_msg(),
1099 ProtocolMsg::RegisterBackendRep(msg) => msg.encode_msg(),
1100 ProtocolMsg::RegisterServiceReq(msg) => msg.encode_msg(),
1101 ProtocolMsg::RegisterServiceRep(msg) => msg.encode_msg(),
1102 ProtocolMsg::SetRoutesReq(msg) => msg.encode_msg(),
1103 ProtocolMsg::SetRoutesRep(msg) => msg.encode_msg(),
1104 ProtocolMsg::GetRoutesReq(msg) => msg.encode_msg(),
1105 ProtocolMsg::GetRoutesRep(msg) => msg.encode_msg(),
1106 ProtocolMsg::GetTopicDistChecksumReq(msg) => msg.encode_msg(),
1107 ProtocolMsg::GetTopicDistChecksumRep(msg) => msg.encode_msg(),
1108 ProtocolMsg::GetRouteDistChecksumReq(msg) => msg.encode_msg(),
1109 ProtocolMsg::GetRouteDistChecksumRep(msg) => msg.encode_msg(),
1110 ProtocolMsg::PickFrontendReq(msg) => msg.encode_msg(),
1111 ProtocolMsg::PickFrontendRep(msg) => msg.encode_msg(),
1112 ProtocolMsg::PickFrontendsReq(msg) => msg.encode_msg(),
1113 ProtocolMsg::PickFrontendsRep(msg) => msg.encode_msg(),
1114 ProtocolMsg::LocateTopicReq(msg) => msg.encode_msg(),
1115 ProtocolMsg::LocateTopicRep(msg) => msg.encode_msg(),
1116 ProtocolMsg::ResolveIpReq(msg) => msg.encode_msg(),
1117 ProtocolMsg::ResolveIpRep(msg) => msg.encode_msg(),
1118 }
1119}
1120
1121pub fn decode(bytes: &Bytes) -> Result<ProtocolMsg, DecodeError> {
1122 decode_bytes(bytes.as_ref())
1123}
1124
1125pub fn decode_bytes(bytes: &[u8]) -> Result<ProtocolMsg, DecodeError> {
1126 let msg_type = bytes[0] as i8;
1127 let msg_body = &bytes[1..];
1128 if msg_type == 1 {
1129 let res: Result<PingReq, DecodeError> = ProstMessage::decode(msg_body);
1130 match res {
1131 Ok(msg) => Ok(ProtocolMsg::PingReq(msg)),
1132 Err(err) => Err(err),
1133 }
1134 } else if msg_type == 2 {
1135 let res: Result<PingRep, DecodeError> = ProstMessage::decode(msg_body);
1136 match res {
1137 Ok(msg) => Ok(ProtocolMsg::PingRep(msg)),
1138 Err(err) => Err(err),
1139 }
1140 } else if msg_type == 29 {
1141 let res: Result<OkRep, DecodeError> = ProstMessage::decode(msg_body);
1142 match res {
1143 Ok(msg) => Ok(ProtocolMsg::OkRep(msg)),
1144 Err(err) => Err(err),
1145 }
1146 } else if msg_type == 30 {
1147 let res: Result<ErrorRep, DecodeError> = ProstMessage::decode(msg_body);
1148 match res {
1149 Ok(msg) => Ok(ProtocolMsg::ErrorRep(msg)),
1150 Err(err) => Err(err),
1151 }
1152 } else if msg_type == 31 {
1153 let res: Result<Ok2Rep, DecodeError> = ProstMessage::decode(msg_body);
1154 match res {
1155 Ok(msg) => Ok(ProtocolMsg::Ok2Rep(msg)),
1156 Err(err) => Err(err),
1157 }
1158 } else if msg_type == 32 {
1159 let res: Result<Error2Rep, DecodeError> = ProstMessage::decode(msg_body);
1160 match res {
1161 Ok(msg) => Ok(ProtocolMsg::Error2Rep(msg)),
1162 Err(err) => Err(err),
1163 }
1164 } else if msg_type == 33 {
1165 let res: Result<PushReq, DecodeError> = ProstMessage::decode(msg_body);
1166 match res {
1167 Ok(msg) => Ok(ProtocolMsg::PushReq(msg)),
1168 Err(err) => Err(err),
1169 }
1170 } else if msg_type == 34 {
1171 let res: Result<PushRep, DecodeError> = ProstMessage::decode(msg_body);
1172 match res {
1173 Ok(msg) => Ok(ProtocolMsg::PushRep(msg)),
1174 Err(err) => Err(err),
1175 }
1176 } else if msg_type == 35 {
1177 let res: Result<PullReq, DecodeError> = ProstMessage::decode(msg_body);
1178 match res {
1179 Ok(msg) => Ok(ProtocolMsg::PullReq(msg)),
1180 Err(err) => Err(err),
1181 }
1182 } else if msg_type == 36 {
1183 let res: Result<PullRep, DecodeError> = ProstMessage::decode(msg_body);
1184 match res {
1185 Ok(msg) => Ok(ProtocolMsg::PullRep(msg)),
1186 Err(err) => Err(err),
1187 }
1188 } else if msg_type == 39 {
1189 let res: Result<ReqReq, DecodeError> = ProstMessage::decode(msg_body);
1190 match res {
1191 Ok(msg) => Ok(ProtocolMsg::ReqReq(msg)),
1192 Err(err) => Err(err),
1193 }
1194 } else if msg_type == 40 {
1195 let res: Result<ReqRep, DecodeError> = ProstMessage::decode(msg_body);
1196 match res {
1197 Ok(msg) => Ok(ProtocolMsg::ReqRep(msg)),
1198 Err(err) => Err(err),
1199 }
1200 } else if msg_type == 41 {
1201 let res: Result<AuthReq, DecodeError> = ProstMessage::decode(msg_body);
1202 match res {
1203 Ok(msg) => Ok(ProtocolMsg::AuthReq(msg)),
1204 Err(err) => Err(err),
1205 }
1206 } else if msg_type == 42 {
1207 let res: Result<AuthRep, DecodeError> = ProstMessage::decode(msg_body);
1208 match res {
1209 Ok(msg) => Ok(ProtocolMsg::AuthRep(msg)),
1210 Err(err) => Err(err),
1211 }
1212 } else if msg_type == 65 {
1213 let res: Result<RegisterFrontendReq, DecodeError> = ProstMessage::decode(msg_body);
1214 match res {
1215 Ok(msg) => Ok(ProtocolMsg::RegisterFrontendReq(msg)),
1216 Err(err) => Err(err),
1217 }
1218 } else if msg_type == 66 {
1219 let res: Result<RegisterFrontendRep, DecodeError> = ProstMessage::decode(msg_body);
1220 match res {
1221 Ok(msg) => Ok(ProtocolMsg::RegisterFrontendRep(msg)),
1222 Err(err) => Err(err),
1223 }
1224 } else if msg_type == 67 {
1225 let res: Result<RegisterBackendReq, DecodeError> = ProstMessage::decode(msg_body);
1226 match res {
1227 Ok(msg) => Ok(ProtocolMsg::RegisterBackendReq(msg)),
1228 Err(err) => Err(err),
1229 }
1230 } else if msg_type == 68 {
1231 let res: Result<RegisterBackendRep, DecodeError> = ProstMessage::decode(msg_body);
1232 match res {
1233 Ok(msg) => Ok(ProtocolMsg::RegisterBackendRep(msg)),
1234 Err(err) => Err(err),
1235 }
1236 } else if msg_type == 69 {
1237 let res: Result<RegisterServiceReq, DecodeError> = ProstMessage::decode(msg_body);
1238 match res {
1239 Ok(msg) => Ok(ProtocolMsg::RegisterServiceReq(msg)),
1240 Err(err) => Err(err),
1241 }
1242 } else if msg_type == 70 {
1243 let res: Result<RegisterServiceRep, DecodeError> = ProstMessage::decode(msg_body);
1244 match res {
1245 Ok(msg) => Ok(ProtocolMsg::RegisterServiceRep(msg)),
1246 Err(err) => Err(err),
1247 }
1248 } else if msg_type == 71 {
1249 let res: Result<SetRoutesReq, DecodeError> = ProstMessage::decode(msg_body);
1250 match res {
1251 Ok(msg) => Ok(ProtocolMsg::SetRoutesReq(msg)),
1252 Err(err) => Err(err),
1253 }
1254 } else if msg_type == 72 {
1255 let res: Result<SetRoutesRep, DecodeError> = ProstMessage::decode(msg_body);
1256 match res {
1257 Ok(msg) => Ok(ProtocolMsg::SetRoutesRep(msg)),
1258 Err(err) => Err(err),
1259 }
1260 } else if msg_type == 75 {
1261 let res: Result<GetRoutesReq, DecodeError> = ProstMessage::decode(msg_body);
1262 match res {
1263 Ok(msg) => Ok(ProtocolMsg::GetRoutesReq(msg)),
1264 Err(err) => Err(err),
1265 }
1266 } else if msg_type == 76 {
1267 let res: Result<GetRoutesRep, DecodeError> = ProstMessage::decode(msg_body);
1268 match res {
1269 Ok(msg) => Ok(ProtocolMsg::GetRoutesRep(msg)),
1270 Err(err) => Err(err),
1271 }
1272 } else if msg_type == 77 {
1273 let res: Result<GetTopicDistChecksumReq, DecodeError> = ProstMessage::decode(msg_body);
1274 match res {
1275 Ok(msg) => Ok(ProtocolMsg::GetTopicDistChecksumReq(msg)),
1276 Err(err) => Err(err),
1277 }
1278 } else if msg_type == 78 {
1279 let res: Result<GetTopicDistChecksumRep, DecodeError> = ProstMessage::decode(msg_body);
1280 match res {
1281 Ok(msg) => Ok(ProtocolMsg::GetTopicDistChecksumRep(msg)),
1282 Err(err) => Err(err),
1283 }
1284 } else if msg_type == 79 {
1285 let res: Result<GetRouteDistChecksumReq, DecodeError> = ProstMessage::decode(msg_body);
1286 match res {
1287 Ok(msg) => Ok(ProtocolMsg::GetRouteDistChecksumReq(msg)),
1288 Err(err) => Err(err),
1289 }
1290 } else if msg_type == 80 {
1291 let res: Result<GetRouteDistChecksumRep, DecodeError> = ProstMessage::decode(msg_body);
1292 match res {
1293 Ok(msg) => Ok(ProtocolMsg::GetRouteDistChecksumRep(msg)),
1294 Err(err) => Err(err),
1295 }
1296 } else if msg_type == 81 {
1297 let res: Result<PickFrontendReq, DecodeError> = ProstMessage::decode(msg_body);
1298 match res {
1299 Ok(msg) => Ok(ProtocolMsg::PickFrontendReq(msg)),
1300 Err(err) => Err(err),
1301 }
1302 } else if msg_type == 82 {
1303 let res: Result<PickFrontendRep, DecodeError> = ProstMessage::decode(msg_body);
1304 match res {
1305 Ok(msg) => Ok(ProtocolMsg::PickFrontendRep(msg)),
1306 Err(err) => Err(err),
1307 }
1308 } else if msg_type == 83 {
1309 let res: Result<PickFrontendsReq, DecodeError> = ProstMessage::decode(msg_body);
1310 match res {
1311 Ok(msg) => Ok(ProtocolMsg::PickFrontendsReq(msg)),
1312 Err(err) => Err(err),
1313 }
1314 } else if msg_type == 84 {
1315 let res: Result<PickFrontendsRep, DecodeError> = ProstMessage::decode(msg_body);
1316 match res {
1317 Ok(msg) => Ok(ProtocolMsg::PickFrontendsRep(msg)),
1318 Err(err) => Err(err),
1319 }
1320 } else if msg_type == 85 {
1321 let res: Result<LocateTopicReq, DecodeError> = ProstMessage::decode(msg_body);
1322 match res {
1323 Ok(msg) => Ok(ProtocolMsg::LocateTopicReq(msg)),
1324 Err(err) => Err(err),
1325 }
1326 } else if msg_type == 86 {
1327 let res: Result<LocateTopicRep, DecodeError> = ProstMessage::decode(msg_body);
1328 match res {
1329 Ok(msg) => Ok(ProtocolMsg::LocateTopicRep(msg)),
1330 Err(err) => Err(err),
1331 }
1332 } else if msg_type == 121 {
1333 let res: Result<ResolveIpReq, DecodeError> = ProstMessage::decode(msg_body);
1334 match res {
1335 Ok(msg) => Ok(ProtocolMsg::ResolveIpReq(msg)),
1336 Err(err) => Err(err),
1337 }
1338 } else if msg_type == 122 {
1339 let res: Result<ResolveIpRep, DecodeError> = ProstMessage::decode(msg_body);
1340 match res {
1341 Ok(msg) => Ok(ProtocolMsg::ResolveIpRep(msg)),
1342 Err(err) => Err(err),
1343 }
1344 } else {
1345 Err(DecodeError::new(format!("Invalid msg type: {}", msg_type)))
1346 }
1347}
1348
1349pub fn set_ref(protocol_msg: &mut ProtocolMsg, r#ref: u32) -> &ProtocolMsg {
1350 match protocol_msg {
1351 ProtocolMsg::None => panic!("Failed to set ref for ProtocolMsg::None"),
1352 ProtocolMsg::PingReq(msg) => msg.r#ref = r#ref,
1353 ProtocolMsg::PingRep(msg) => msg.r#ref = r#ref,
1354 ProtocolMsg::OkRep(msg) => msg.r#ref = r#ref,
1355 ProtocolMsg::ErrorRep(msg) => msg.r#ref = r#ref,
1356 ProtocolMsg::Ok2Rep(msg) => msg.r#ref = r#ref,
1357 ProtocolMsg::Error2Rep(msg) => msg.r#ref = r#ref,
1358 ProtocolMsg::PushReq(msg) => msg.r#ref = r#ref,
1359 ProtocolMsg::PushRep(msg) => msg.r#ref = r#ref,
1360 ProtocolMsg::PullReq(msg) => msg.r#ref = r#ref,
1361 ProtocolMsg::PullRep(msg) => msg.r#ref = r#ref,
1362 ProtocolMsg::ReqReq(msg) => msg.r#ref = r#ref,
1363 ProtocolMsg::ReqRep(msg) => msg.r#ref = r#ref,
1364 ProtocolMsg::AuthReq(msg) => msg.r#ref = r#ref,
1365 ProtocolMsg::AuthRep(msg) => msg.r#ref = r#ref,
1366 ProtocolMsg::RegisterFrontendReq(msg) => msg.r#ref = r#ref,
1367 ProtocolMsg::RegisterFrontendRep(msg) => msg.r#ref = r#ref,
1368 ProtocolMsg::RegisterBackendReq(msg) => msg.r#ref = r#ref,
1369 ProtocolMsg::RegisterBackendRep(msg) => msg.r#ref = r#ref,
1370 ProtocolMsg::RegisterServiceReq(msg) => msg.r#ref = r#ref,
1371 ProtocolMsg::RegisterServiceRep(msg) => msg.r#ref = r#ref,
1372 ProtocolMsg::SetRoutesReq(msg) => msg.r#ref = r#ref,
1373 ProtocolMsg::SetRoutesRep(msg) => msg.r#ref = r#ref,
1374 ProtocolMsg::GetRoutesReq(msg) => msg.r#ref = r#ref,
1375 ProtocolMsg::GetRoutesRep(msg) => msg.r#ref = r#ref,
1376 ProtocolMsg::GetTopicDistChecksumReq(msg) => msg.r#ref = r#ref,
1377 ProtocolMsg::GetTopicDistChecksumRep(msg) => msg.r#ref = r#ref,
1378 ProtocolMsg::GetRouteDistChecksumReq(msg) => msg.r#ref = r#ref,
1379 ProtocolMsg::GetRouteDistChecksumRep(msg) => msg.r#ref = r#ref,
1380 ProtocolMsg::PickFrontendReq(msg) => msg.r#ref = r#ref,
1381 ProtocolMsg::PickFrontendRep(msg) => msg.r#ref = r#ref,
1382 ProtocolMsg::PickFrontendsReq(msg) => msg.r#ref = r#ref,
1383 ProtocolMsg::PickFrontendsRep(msg) => msg.r#ref = r#ref,
1384 ProtocolMsg::LocateTopicReq(msg) => msg.r#ref = r#ref,
1385 ProtocolMsg::LocateTopicRep(msg) => msg.r#ref = r#ref,
1386 ProtocolMsg::ResolveIpReq(msg) => msg.r#ref = r#ref,
1387 ProtocolMsg::ResolveIpRep(msg) => msg.r#ref = r#ref,
1388 }
1389 protocol_msg
1390}
1391
1392pub fn get_ref(protocol_msg: &ProtocolMsg) -> u32 {
1393 match protocol_msg {
1394 ProtocolMsg::None => panic!("Failed to get ref from ProtocolMsg::None"),
1395 ProtocolMsg::PingReq(msg) => msg.r#ref,
1396 ProtocolMsg::PingRep(msg) => msg.r#ref,
1397 ProtocolMsg::OkRep(msg) => msg.r#ref,
1398 ProtocolMsg::ErrorRep(msg) => msg.r#ref,
1399 ProtocolMsg::Ok2Rep(msg) => msg.r#ref,
1400 ProtocolMsg::Error2Rep(msg) => msg.r#ref,
1401 ProtocolMsg::PushReq(msg) => msg.r#ref,
1402 ProtocolMsg::PushRep(msg) => msg.r#ref,
1403 ProtocolMsg::PullReq(msg) => msg.r#ref,
1404 ProtocolMsg::PullRep(msg) => msg.r#ref,
1405 ProtocolMsg::ReqReq(msg) => msg.r#ref,
1406 ProtocolMsg::ReqRep(msg) => msg.r#ref,
1407 ProtocolMsg::AuthReq(msg) => msg.r#ref,
1408 ProtocolMsg::AuthRep(msg) => msg.r#ref,
1409 ProtocolMsg::RegisterFrontendReq(msg) => msg.r#ref,
1410 ProtocolMsg::RegisterFrontendRep(msg) => msg.r#ref,
1411 ProtocolMsg::RegisterBackendReq(msg) => msg.r#ref,
1412 ProtocolMsg::RegisterBackendRep(msg) => msg.r#ref,
1413 ProtocolMsg::RegisterServiceReq(msg) => msg.r#ref,
1414 ProtocolMsg::RegisterServiceRep(msg) => msg.r#ref,
1415 ProtocolMsg::SetRoutesReq(msg) => msg.r#ref,
1416 ProtocolMsg::SetRoutesRep(msg) => msg.r#ref,
1417 ProtocolMsg::GetRoutesReq(msg) => msg.r#ref,
1418 ProtocolMsg::GetRoutesRep(msg) => msg.r#ref,
1419 ProtocolMsg::GetTopicDistChecksumReq(msg) => msg.r#ref,
1420 ProtocolMsg::GetTopicDistChecksumRep(msg) => msg.r#ref,
1421 ProtocolMsg::GetRouteDistChecksumReq(msg) => msg.r#ref,
1422 ProtocolMsg::GetRouteDistChecksumRep(msg) => msg.r#ref,
1423 ProtocolMsg::PickFrontendReq(msg) => msg.r#ref,
1424 ProtocolMsg::PickFrontendRep(msg) => msg.r#ref,
1425 ProtocolMsg::PickFrontendsReq(msg) => msg.r#ref,
1426 ProtocolMsg::PickFrontendsRep(msg) => msg.r#ref,
1427 ProtocolMsg::LocateTopicReq(msg) => msg.r#ref,
1428 ProtocolMsg::LocateTopicRep(msg) => msg.r#ref,
1429 ProtocolMsg::ResolveIpReq(msg) => msg.r#ref,
1430 ProtocolMsg::ResolveIpRep(msg) => msg.r#ref,
1431 }
1432}