1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use protobuf::Message;
use crate::network::dispatch::{DispatchError, FromMessageBytes};
use crate::protos::prelude::*;
impl<M> FromMessageBytes for M
where
M: Message + Sized,
{
fn from_message_bytes(message_bytes: &[u8]) -> Result<Self, DispatchError> {
Message::parse_from_bytes(message_bytes)
.map_err(|err| DispatchError::DeserializationError(err.to_string()))
}
}
impl From<ProtoConversionError> for DispatchError {
fn from(err: ProtoConversionError) -> DispatchError {
match err {
ProtoConversionError::DeserializationError(s) => DispatchError::DeserializationError(s),
ProtoConversionError::SerializationError(s) => DispatchError::SerializationError(s),
ProtoConversionError::InvalidTypeError(s) => DispatchError::DeserializationError(s),
}
}
}