prost_msg_id/
lib.rs

1/*
2message Fail{
3   enum MsgId {  None=0;Id = 150002; }
4   int64 number=1;
5   string message=2;
6}
7 */
8
9
10
11
12use std::fmt::Debug;
13use std::rc::Rc;
14use std::sync::Arc;
15
16/// prost type msg id trait
17pub trait MsgId {
18    /// get struct msg id
19    fn get_msg_id(&self) -> i32;
20}
21
22impl <T:MsgId> MsgId for Box<T>{
23    fn get_msg_id(&self) -> i32 {
24        (**self).get_msg_id()
25    }
26}
27
28impl <T:MsgId> MsgId for Rc<T>{
29    fn get_msg_id(&self) -> i32 {
30        (**self).get_msg_id()
31    }
32}
33
34impl <T:MsgId> MsgId for Arc<T>{
35    fn get_msg_id(&self) -> i32 {
36        (**self).get_msg_id()
37    }
38}