serde_mtproto 0.1.0

MTProto [de]serialization for Rust
Documentation
pub trait Identifiable {
    fn get_id(&self) -> i32;
    fn get_enum_variant_id(&self) -> Option<&'static str>;
}

impl<'a, T: Identifiable> Identifiable for &'a T {
    fn get_id(&self) -> i32 {
        (*self).get_id()
    }

    fn get_enum_variant_id(&self) -> Option<&'static str> {
        (*self).get_enum_variant_id()
    }
}


#[derive(Serialize, Deserialize)]
pub struct Wrapper<T> {
    id: i32,
    data: T,
}

impl<T: Identifiable> Wrapper<T> {
    pub fn new(data: T) -> Wrapper<T> {
        Wrapper {
            id: data.get_id(),
            data: data,
        }
    }

    pub fn take_data(self) -> T {
        self.data
    }
}