From c546e2ef6c69bb1c6a86093f3cc7b2dab20d6ac4 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Sat, 25 Apr 2020 19:35:29 +0200 Subject: finish parsing of primitive types --- src/protocol/primitive/mod.rs | 64 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 12 deletions(-) (limited to 'src/protocol/primitive/mod.rs') diff --git a/src/protocol/primitive/mod.rs b/src/protocol/primitive/mod.rs index fb843ad..5656d71 100644 --- a/src/protocol/primitive/mod.rs +++ b/src/protocol/primitive/mod.rs @@ -1,10 +1,53 @@ -#[allow(dead_code)] -pub mod basic; +pub mod bufferinfo; +pub mod datetime; +pub mod message; +pub mod signedint; +pub mod string; +pub mod stringlist; +pub mod unsignedint; pub mod variant; +pub mod variantlist; +pub mod variantmap; -pub use basic::*; +pub use bufferinfo::*; +pub use datetime::*; +pub use message::*; +pub use signedint::*; +pub use string::*; +pub use stringlist::*; +pub use unsignedint::*; pub use variant::*; +pub use variantlist::*; +pub use variantmap::*; +// Static Type Definitions +pub const VOID: u32 = 0x00000000; +pub const BOOL: u32 = 0x00000001; +pub const QCHAR: u32 = 0x00000007; + +pub const QVARIANT: u32 = 0x00000090; +pub const QVARIANTMAP: u32 = 0x00000008; +pub const QVARIANTLIST: u32 = 0x00000009; + +pub const QSTRING: u32 = 0x0000000a; +pub const QSTRINGLIST: u32 = 0x0000000b; +pub const QBYTEARRAY: u32 = 0x0000000c; + +pub const QDATE: u32 = 0x0000000e; +pub const QTIME: u32 = 0x0000000f; +pub const QDATETIME: u32 = 0x00000010; +pub const USERTYPE: u32 = 0x0000007f; + +// Basic types +pub const LONG: u32 = 0x00000081; // int64_t +pub const INT: u32 = 0x00000002; // int32_t +pub const SHORT: u32 = 0x00000082; // int16_t +pub const CHAR: u32 = 0x00000083; // int8_t + +pub const ULONG: u32 = 0x00000084; // uint64_t +pub const UINT: u32 = 0x00000003; // uint32_t +pub const USHORT: u32 = 0x00000085; // uint16_t +pub const UCHAR: u32 = 0x00000086; // uint8_t pub mod serialize { use failure::Error; @@ -19,16 +62,13 @@ pub mod serialize { pub mod deserialize { use failure::Error; pub trait Deserialize { - fn parse(b: &[u8]) -> Result<(usize, Self), Error> where Self: std::marker::Sized ; + fn parse(b: &[u8]) -> Result<(usize, Self), Error> + where + Self: std::marker::Sized; } pub trait DeserializeUTF8 { - fn parse_utf8(b: &[u8]) -> Result<(usize, Self), Error> where Self: std::marker::Sized ; - } -} - -pub mod qread { - use failure::Error; - pub trait QRead { - fn read(stream: &mut T, buf: &mut [u8]) -> Result; + fn parse_utf8(b: &[u8]) -> Result<(usize, Self), Error> + where + Self: std::marker::Sized; } } -- cgit v1.2.3