diff options
| author | Max Audron <audron@cocaine.farm> | 2020-01-17 12:30:27 +0100 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2020-01-17 12:30:27 +0100 |
| commit | 07561131e9ec3d1f3aef99a8df2e3b9b7282156e (patch) | |
| tree | 72830d0eff2dd04698cc9ae9d698d31cc139056f /src/protocol/primitive/mod.rs | |
| parent | finish main parsing (diff) | |
add error handling
Diffstat (limited to 'src/protocol/primitive/mod.rs')
| -rw-r--r-- | src/protocol/primitive/mod.rs | 17 |
1 files changed, 12 insertions, 5 deletions
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<u8>; + fn serialize(&self) -> Result<Vec<u8>, ErrorKind>; } pub trait SerializeUTF8 { - fn serialize_utf8(&self) -> Vec<u8>; + fn serialize_utf8(&self) -> Result<Vec<u8>, 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<T: std::io::Read>(stream: &mut T, buf: &mut [u8]) -> usize; + fn read<T: std::io::Read>(stream: &mut T, buf: &mut [u8]) -> Result<usize, ErrorKind>; } } |
