From 07561131e9ec3d1f3aef99a8df2e3b9b7282156e Mon Sep 17 00:00:00 2001 From: Max Audron Date: Fri, 17 Jan 2020 12:30:27 +0100 Subject: add error handling --- src/protocol/primitive/mod.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/protocol/primitive/mod.rs') diff --git a/src/protocol/primitive/mod.rs b/src/protocol/primitive/mod.rs index 2cdd20a..42f6aae 100644 --- a/src/protocol/primitive/mod.rs +++ b/src/protocol/primitive/mod.rs @@ -5,26 +5,33 @@ pub mod variant; pub use basic::*; pub use variant::*; + pub mod serialize { + use crate::protocol::error::ErrorKind; + pub trait Serialize { - fn serialize(&self) -> Vec; + fn serialize(&self) -> Result, ErrorKind>; } pub trait SerializeUTF8 { - fn serialize_utf8(&self) -> Vec; + fn serialize_utf8(&self) -> Result, ErrorKind>; } } pub mod deserialize { + use crate::protocol::error::ErrorKind; + pub trait Deserialize { - fn parse(b: &[u8]) -> (usize, Self); + fn parse(b: &[u8]) -> Result<(usize, Self), ErrorKind> where Self: std::marker::Sized ; } pub trait DeserializeUTF8 { - fn parse_utf8(b: &[u8]) -> (usize, Self); + fn parse_utf8(b: &[u8]) -> Result<(usize, Self), ErrorKind> where Self: std::marker::Sized ; } } pub mod qread { + use crate::protocol::error::ErrorKind; + pub trait QRead { - fn read(stream: &mut T, buf: &mut [u8]) -> usize; + fn read(stream: &mut T, buf: &mut [u8]) -> Result; } } -- cgit v1.2.3