serde_mtproto 0.3.1

MTProto [de]serialization for Rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use num_traits::cast::{NumCast, cast};

use error::{self, ErrorKind, ResultExt};


pub fn safe_cast<T: NumCast, U: NumCast>(n: T) -> error::Result<U> {
    cast(n).ok_or(ErrorKind::IntegerCast.into())
}

pub fn check_seq_len(len: usize) -> error::Result<()> {
    safe_cast::<usize, u32>(len)
        .map(|_| ())
        .chain_err(|| ErrorKind::SeqTooLong(len))
}