diff options
| author | Max Audron <audron@cocaine.farm> | 2020-04-29 00:00:44 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2020-04-29 00:00:44 +0200 |
| commit | fc64e11cdd35051a2ea87237f548ae0497a2f7f9 (patch) | |
| tree | c57937731898b0ffd66d1d95bb0f181cae568c37 /src/lib.rs | |
| parent | finish parsing of primitive types (diff) | |
refactor everything
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 57 |
1 files changed, 53 insertions, 4 deletions
@@ -1,8 +1,5 @@ -pub mod consts; -pub mod protocol; - #[macro_use] -pub mod util; +mod util; #[cfg(feature = "client")] pub mod client; @@ -12,3 +9,55 @@ pub mod tests; #[macro_use] extern crate failure; + +pub mod message; +pub mod primitive; + +#[allow(dead_code)] +pub mod error; + +#[allow(unused_variables, dead_code)] +#[cfg(feature = "framing")] +pub mod frame; + +use failure::Error; + +/// Serialization of types and structs to the quassel byteprotocol +pub trait Serialize { + fn serialize(&self) -> Result<Vec<u8>, Error>; +} + +/// Serialization of UTF-8 based Strings to the quassel byteprotocol +pub trait SerializeUTF8 { + fn serialize_utf8(&self) -> Result<Vec<u8>, Error>; +} + +/// Deserialization of types and structs to the quassel byteprotocol +pub trait Deserialize { + fn parse(b: &[u8]) -> Result<(usize, Self), Error> + where + Self: std::marker::Sized; +} + +/// Deserialization of UTF-8 based Strings to the quassel byteprotocol +pub trait DeserializeUTF8 { + fn parse_utf8(b: &[u8]) -> Result<(usize, Self), Error> + where + Self: std::marker::Sized; +} + +/// HandshakeSerialize implements the serialization needed during the handhake phase. +/// +/// The protocol has some minor differences during this phase compared to the regular parsing. +pub trait HandshakeSerialize { + fn serialize(&self) -> Result<Vec<u8>, Error>; +} + +/// HandshakeDeserialize implements the deserialization needed during the handhake phase. +/// +/// The protocol has some minor differences during this phase compared to the regular parsing. +pub trait HandshakeDeserialize { + fn parse(b: &[u8]) -> Result<(usize, Self), Error> + where + Self: std::marker::Sized; +} |
