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),
}
}
}