aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib.rs1
-rw-r--r--src/message/signalproxy/objects/coreinfo.rs6
-rw-r--r--src/message/signalproxy/objects/ircuser.rs22
-rw-r--r--src/primitive/datetime.rs40
-rw-r--r--src/primitive/message.rs1
-rw-r--r--src/primitive/variant.rs108
6 files changed, 96 insertions, 82 deletions
diff --git a/src/lib.rs b/src/lib.rs
index e66b2d6..877b31a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,3 +1,4 @@
+#![allow(unused_variables, unused_imports)]
#![cfg_attr(all(test, feature = "bench"), feature(test))]
#[cfg(all(test, feature = "bench"))]
extern crate test;
diff --git a/src/message/signalproxy/objects/coreinfo.rs b/src/message/signalproxy/objects/coreinfo.rs
index 7b3009a..4567762 100644
--- a/src/message/signalproxy/objects/coreinfo.rs
+++ b/src/message/signalproxy/objects/coreinfo.rs
@@ -1,7 +1,7 @@
use libquassel_derive::{NetworkList, NetworkMap};
use crate::message::signalproxy::translation::NetworkMap;
-use crate::message::{Syncable, Class};
+use crate::message::{Class, Syncable};
use crate::primitive::{DateTime, StringList};
#[derive(Default, Debug, Clone, PartialEq, NetworkList, NetworkMap)]
@@ -68,7 +68,7 @@ pub struct CoreData {
#[network(
rename = "sessionConnectedClientData",
variant = "VariantList",
- network = "map",
+ network = "map"
)]
pub session_connected_client_data: Vec<ConnectedClient>,
}
@@ -78,7 +78,7 @@ impl Default for CoreData {
Self {
quassel_version: Default::default(),
quassel_build_date: Default::default(),
- start_time:DateTime::unix_epoch(),
+ start_time: DateTime::UNIX_EPOCH,
session_connected_clients: Default::default(),
session_connected_client_data: Default::default(),
}
diff --git a/src/message/signalproxy/objects/ircuser.rs b/src/message/signalproxy/objects/ircuser.rs
index b96ea95..61c4a2e 100644
--- a/src/message/signalproxy/objects/ircuser.rs
+++ b/src/message/signalproxy/objects/ircuser.rs
@@ -1,5 +1,5 @@
use crate::{
- message::{Syncable, Class},
+ message::{Class, Syncable},
primitive::{DateTime, StringList},
};
@@ -45,7 +45,7 @@ pub struct IrcUser {
impl IrcUser {
pub fn add_user_modes(&mut self, modes: String) {
for mode in modes.chars() {
- if ! self.user_modes.contains(mode) {
+ if !self.user_modes.contains(mode) {
self.user_modes.push(mode);
}
}
@@ -65,12 +65,10 @@ impl IrcUser {
sync!("removeUserModes", [modes]);
}
- pub fn update_hostmask(&mut self, mask: String) {
-
- }
+ pub fn update_hostmask(&mut self, mask: String) {}
pub fn join_channel(&mut self, channel: String) {
- if ! self.channels.contains(&channel) {
+ if !self.channels.contains(&channel) {
self.channels.push(channel.clone())
}
@@ -126,12 +124,12 @@ mod tests {
account: s!(""),
away: false,
away_message: s!(""),
- idle_time: OffsetDateTime::unix_epoch(),
- login_time: OffsetDateTime::unix_epoch(),
+ idle_time: OffsetDateTime::UNIX_EPOCH,
+ login_time: OffsetDateTime::UNIX_EPOCH,
server: s!(""),
irc_operator: s!(""),
// last_away_message: 0,
- last_away_message_time: OffsetDateTime::unix_epoch(),
+ last_away_message_time: OffsetDateTime::UNIX_EPOCH,
whois_service_reply: s!(""),
suser_host: s!(""),
encrypted: false,
@@ -152,7 +150,7 @@ mod tests {
s!("lastAwayMessageTime") => Variant::VariantList(vec!
[
Variant::DateTime(
- OffsetDateTime::unix_epoch() ,
+ OffsetDateTime::UNIX_EPOCH,
),
],
),
@@ -180,7 +178,7 @@ mod tests {
s!("loginTime") => Variant::VariantList(vec!
[
Variant::DateTime(
- OffsetDateTime::unix_epoch()
+ OffsetDateTime::UNIX_EPOCH
),
],
),
@@ -229,7 +227,7 @@ mod tests {
s!("idleTime") => Variant::VariantList(vec!
[
Variant::DateTime(
- OffsetDateTime::unix_epoch()
+ OffsetDateTime::UNIX_EPOCH
),
],
),
diff --git a/src/primitive/datetime.rs b/src/primitive/datetime.rs
index 8d78b32..395830d 100644
--- a/src/primitive/datetime.rs
+++ b/src/primitive/datetime.rs
@@ -46,7 +46,7 @@ impl Serialize for OffsetDateTime {
fn serialize(&self) -> Result<Vec<u8>, failure::Error> {
let mut values: Vec<u8> = Vec::new();
- values.extend(i32::serialize(&(self.date().julian_day() as i32))?);
+ values.extend(i32::serialize(&(self.date().to_julian_day() as i32))?);
let time: i32 = {
let hour: i32 = self.time().hour() as i32;
@@ -59,7 +59,7 @@ impl Serialize for OffsetDateTime {
values.extend(i32::serialize(&time)?);
values.extend(u8::serialize(&(TimeSpec::OffsetFromUTC as u8))?);
- values.extend(i32::serialize(&self.offset().as_seconds())?);
+ values.extend(i32::serialize(&self.offset().whole_seconds())?);
Ok(values)
}
@@ -77,13 +77,13 @@ impl Deserialize for OffsetDateTime {
// Default to unix epoch when one of these is set to -1
if julian_day == -1 || millis_of_day == -1 {
- return Ok((pos, OffsetDateTime::unix_epoch()));
+ return Ok((pos, OffsetDateTime::UNIX_EPOCH));
}
let offset: UtcOffset;
match zone {
TimeSpec::LocalUnknown | TimeSpec::LocalStandard | TimeSpec::LocalDST => {
- offset = UtcOffset::try_current_local_offset().unwrap_or_else(|_| {
+ offset = UtcOffset::current_local_offset().unwrap_or_else(|_| {
log::warn!("could not get local offset defaulting to utc");
UtcOffset::UTC
})
@@ -92,19 +92,18 @@ impl Deserialize for OffsetDateTime {
TimeSpec::OffsetFromUTC => {
let (_, tmp_offset) = i32::parse(&b[9..13])?;
pos += 4;
- offset = UtcOffset::seconds(tmp_offset)
+ offset = UtcOffset::from_whole_seconds(tmp_offset).unwrap_or(UtcOffset::UTC)
}
}
- let date = Date::from_julian_day(julian_day as i64);
+ let date = Date::from_julian_day(julian_day)?;
let hour = millis_of_day / 60 / 60000;
let minute = (millis_of_day - (hour * 60 * 60000)) / 60000;
let seconds = (millis_of_day - (hour * 60 * 60000) - (minute * 60000)) / 1000;
let millis = millis_of_day - (hour * 60 * 60000) - (minute * 60000) - (seconds * 1000);
- let time =
- Time::try_from_hms_milli(hour as u8, minute as u8, seconds as u8, millis as u16)?;
+ let time = Time::from_hms_milli(hour as u8, minute as u8, seconds as u8, millis as u16)?;
let primitivedatetime = PrimitiveDateTime::new(date, time);
let datetime = primitivedatetime.assume_offset(offset);
@@ -116,7 +115,7 @@ impl Serialize for Date {
fn serialize(&self) -> Result<Vec<std::primitive::u8>, failure::Error> {
let mut values: Vec<u8> = Vec::new();
- values.extend(i32::serialize(&(self.julian_day() as i32))?);
+ values.extend(i32::serialize(&(self.to_julian_day() as i32))?);
Ok(values)
}
@@ -125,7 +124,7 @@ impl Serialize for Date {
impl Deserialize for Date {
fn parse(b: &[std::primitive::u8]) -> Result<(std::primitive::usize, Self), failure::Error> {
let (_, julian_day) = i32::parse(&b[0..4])?;
- let date = Date::from_julian_day(julian_day as i64);
+ let date = Date::from_julian_day(julian_day)?;
Ok((4, date))
}
@@ -159,8 +158,7 @@ impl Deserialize for Time {
let seconds = (millis_of_day - (hour * 60 * 60000) - (minute * 60000)) / 1000;
let millis = millis_of_day - (hour * 60 * 60000) - (minute * 60000) - (seconds * 1000);
- let time =
- Time::try_from_hms_milli(hour as u8, minute as u8, seconds as u8, millis as u16)?;
+ let time = Time::from_hms_milli(hour as u8, minute as u8, seconds as u8, millis as u16)?;
Ok((4, time))
}
@@ -168,7 +166,13 @@ impl Deserialize for Time {
#[test]
pub fn datetime_serialize() {
- let datetime = DateTime::parse("2020-02-19 13:00 +0200", "%Y-%m-%d %R %z").unwrap();
+ let datetime = DateTime::parse(
+ "2020-02-19 13:00 +0200",
+ time::macros::format_description!(
+ "[year]-[month]-[day] [hour]:[minute] [offset_hour sign:mandatory][offset_minute]"
+ ),
+ )
+ .unwrap();
let sers = datetime.serialize().unwrap();
let bytes = vec![0, 37, 133, 19, 2, 202, 28, 128, 3, 0, 0, 28, 32];
@@ -178,7 +182,13 @@ pub fn datetime_serialize() {
#[test]
pub fn datetime_deserialize() {
- let datetime = DateTime::parse("2020-02-19 13:00 +0200", "%Y-%m-%d %R %z").unwrap();
+ let datetime = DateTime::parse(
+ "2020-02-19 13:00 +0200",
+ time::macros::format_description!(
+ "[year]-[month]-[day] [hour]:[minute] [offset_hour sign:mandatory][offset_minute]"
+ ),
+ )
+ .unwrap();
let bytes = vec![0, 37, 133, 19, 2, 202, 28, 128, 3, 0, 0, 28, 32];
let (_, res): (usize, DateTime) = Deserialize::parse(&bytes).unwrap();
@@ -188,7 +198,7 @@ pub fn datetime_deserialize() {
#[test]
pub fn datetime_deserialize_epoch() {
- let datetime = DateTime::unix_epoch();
+ let datetime = DateTime::UNIX_EPOCH;
let bytes = vec![0, 37, 133, 19, 0xff, 0xff, 0xff, 0xff, 3, 0, 0, 28, 32];
let (_, res): (usize, DateTime) = Deserialize::parse(&bytes).unwrap();
diff --git a/src/primitive/message.rs b/src/primitive/message.rs
index 12edb29..27d60f5 100644
--- a/src/primitive/message.rs
+++ b/src/primitive/message.rs
@@ -198,6 +198,7 @@ impl Deserialize for Message {
use bitflags::bitflags;
bitflags! {
+ #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct MessageType: i32 {
const NONE = 0x00000000;
const PLAIN = 0x00000001;
diff --git a/src/primitive/variant.rs b/src/primitive/variant.rs
index b306ea7..46334a0 100644
--- a/src/primitive/variant.rs
+++ b/src/primitive/variant.rs
@@ -434,6 +434,8 @@ impl Deserialize for Variant {
#[cfg(test)]
mod tests {
+ use time::macros::format_description;
+
use super::*;
#[test]
@@ -460,10 +462,7 @@ mod tests {
i_n_64.serialize().unwrap(),
[0, 0, 0, 129, 0, 255, 252, 253, 100, 160, 148, 133, 168]
);
- assert_eq!(
- i_n_32.serialize().unwrap(),
- [0, 0, 0, 2, 0, 202, 122, 245, 31]
- );
+ assert_eq!(i_n_32.serialize().unwrap(), [0, 0, 0, 2, 0, 202, 122, 245, 31]);
assert_eq!(i_n_16.serialize().unwrap(), [0, 0, 0, 130, 0, 224, 13]);
assert_eq!(i_n_8.serialize().unwrap(), [0, 0, 0, 131, 0, 178]);
}
@@ -496,8 +495,7 @@ mod tests {
let i_n_16 = Variant::i16(-8179);
let i_n_8 = Variant::i8(-78);
- let (_, v_i_64) =
- Variant::parse(&[0, 0, 0, 129, 0, 0, 3, 2, 155, 95, 107, 122, 88]).unwrap();
+ let (_, v_i_64) = Variant::parse(&[0, 0, 0, 129, 0, 0, 3, 2, 155, 95, 107, 122, 88]).unwrap();
let (_, v_i_32) = Variant::parse(&[0, 0, 0, 2, 0, 53, 133, 10, 225]).unwrap();
let (_, v_i_16) = Variant::parse(&[0, 0, 0, 130, 0, 31, 243]).unwrap();
let (_, v_i_8) = Variant::parse(&[0, 0, 0, 131, 0, 78]).unwrap();
@@ -526,8 +524,7 @@ mod tests {
let u_16 = Variant::u16(8179);
let u_8 = Variant::u8(78);
- let (_, v_u_64) =
- Variant::parse(&[0, 0, 0, 132, 0, 0, 3, 2, 155, 95, 107, 122, 88]).unwrap();
+ let (_, v_u_64) = Variant::parse(&[0, 0, 0, 132, 0, 0, 3, 2, 155, 95, 107, 122, 88]).unwrap();
let (_, v_u_32) = Variant::parse(&[0, 0, 0, 3, 0, 53, 133, 10, 225]).unwrap();
let (_, v_u_16) = Variant::parse(&[0, 0, 0, 133, 0, 31, 243]).unwrap();
let (_, v_u_8) = Variant::parse(&[0, 0, 0, 134, 0, 78]).unwrap();
@@ -579,8 +576,8 @@ mod tests {
let mut test_variantmap = VariantMap::new();
test_variantmap.insert("Configured".to_string(), Variant::bool(true));
let bytes = [
- 0, 0, 0, 1, 0, 0, 0, 20, 0, 67, 0, 111, 0, 110, 0, 102, 0, 105, 0, 103, 0, 117, 0, 114,
- 0, 101, 0, 100, 0, 0, 0, 1, 0, 1,
+ 0, 0, 0, 1, 0, 0, 0, 20, 0, 67, 0, 111, 0, 110, 0, 102, 0, 105, 0, 103, 0, 117, 0, 114, 0, 101,
+ 0, 100, 0, 0, 0, 1, 0, 1,
]
.to_vec();
assert_eq!(test_variantmap.serialize().unwrap(), bytes);
@@ -589,8 +586,8 @@ mod tests {
#[test]
pub fn variantmap_deserialize() {
let test_bytes: &[u8] = &[
- 0, 0, 0, 1, 0, 0, 0, 20, 0, 67, 0, 111, 0, 110, 0, 102, 0, 105, 0, 103, 0, 117, 0, 114,
- 0, 101, 0, 100, 0, 0, 0, 1, 0, 1,
+ 0, 0, 0, 1, 0, 0, 0, 20, 0, 67, 0, 111, 0, 110, 0, 102, 0, 105, 0, 103, 0, 117, 0, 114, 0, 101,
+ 0, 100, 0, 0, 0, 1, 0, 1,
];
let (len, res) = VariantMap::parse(test_bytes).unwrap();
let mut test_variantmap = VariantMap::new();
@@ -609,8 +606,8 @@ mod tests {
};
let bytes = vec![
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x74, 0x65, 0x73, 0x74,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x74,
+ 0x65, 0x73, 0x74,
];
assert_eq!(test_buffer_info.serialize().unwrap(), bytes);
}
@@ -625,8 +622,8 @@ mod tests {
};
let bytes = vec![
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x74, 0x65, 0x73, 0x74, 0x0,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x74,
+ 0x65, 0x73, 0x74, 0x0,
];
let (len, res) = BufferInfo::parse(&bytes).unwrap();
@@ -636,10 +633,7 @@ mod tests {
#[test]
fn char_serialize() {
- assert_eq!(
- Variant::char('z').serialize().unwrap(),
- [0, 0, 0, 7, 0, 0, 122]
- );
+ assert_eq!(Variant::char('z').serialize().unwrap(), [0, 0, 0, 7, 0, 0, 122]);
}
#[test]
@@ -658,23 +652,23 @@ mod tests {
assert_eq!(
Variant::String(test_string.clone()).serialize().unwrap(),
[
- 0, 0, 0, 10, 0, 0, 0, 0, 36, 0, 0x54, 0, 0x68, 0, 0x69, 0, 0x73, 0, 0x20, 0, 0x69,
- 0, 0x73, 0, 0x20, 0, 0x61, 0, 0x20, 0, 0x54, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x21, 0,
- 0x31, 0, 0x21, 0, 0x21
+ 0, 0, 0, 10, 0, 0, 0, 0, 36, 0, 0x54, 0, 0x68, 0, 0x69, 0, 0x73, 0, 0x20, 0, 0x69, 0, 0x73,
+ 0, 0x20, 0, 0x61, 0, 0x20, 0, 0x54, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x21, 0, 0x31, 0, 0x21, 0,
+ 0x21
]
);
assert_eq!(
Variant::ByteArray(test_string.clone()).serialize().unwrap(),
[
- 0, 0, 0, 12, 0, 0, 0, 0, 18, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61,
- 0x20, 0x54, 0x65, 0x73, 0x74, 0x21, 0x31, 0x21, 0x21
+ 0, 0, 0, 12, 0, 0, 0, 0, 18, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20,
+ 0x54, 0x65, 0x73, 0x74, 0x21, 0x31, 0x21, 0x21
]
);
assert_eq!(
Variant::StringList(test_string_list).serialize().unwrap(),
[
- 0, 0, 0, 11, 0, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0x74, 0, 0x65, 0, 0x73, 0, 0x74, 0,
- 0x31, 0, 0, 0, 12, 0, 0x74, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x20, 0, 0x32
+ 0, 0, 0, 11, 0, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0x74, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x31, 0, 0,
+ 0, 12, 0, 0x74, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x20, 0, 0x32
]
);
}
@@ -685,19 +679,18 @@ mod tests {
let test_string_list = vec!["test1".to_string(), "test 2".to_string()];
let test_string_src = vec![
- 0, 0, 0, 10, 0, 0, 0, 0, 36, 0, 0x54, 0, 0x68, 0, 0x69, 0, 0x73, 0, 0x20, 0, 0x69, 0,
- 0x73, 0, 0x20, 0, 0x61, 0, 0x20, 0, 0x54, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x21, 0, 0x31,
- 0, 0x21, 0, 0x21,
+ 0, 0, 0, 10, 0, 0, 0, 0, 36, 0, 0x54, 0, 0x68, 0, 0x69, 0, 0x73, 0, 0x20, 0, 0x69, 0, 0x73, 0,
+ 0x20, 0, 0x61, 0, 0x20, 0, 0x54, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x21, 0, 0x31, 0, 0x21, 0, 0x21,
];
let test_string_src_utf8 = vec![
- 0, 0, 0, 12, 0, 0, 0, 0, 18, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61,
- 0x20, 0x54, 0x65, 0x73, 0x74, 0x21, 0x31, 0x21, 0x21, 0,
+ 0, 0, 0, 12, 0, 0, 0, 0, 18, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x54,
+ 0x65, 0x73, 0x74, 0x21, 0x31, 0x21, 0x21, 0,
];
let test_string_list_src = vec![
- 0, 0, 0, 11, 0, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0x74, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x31,
- 0, 0, 0, 12, 0, 0x74, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x20, 0, 0x32,
+ 0, 0, 0, 11, 0, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0x74, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x31, 0, 0, 0,
+ 12, 0, 0x74, 0, 0x65, 0, 0x73, 0, 0x74, 0, 0x20, 0, 0x32,
];
assert_eq!(
@@ -716,38 +709,49 @@ mod tests {
#[test]
fn datetime_serialize() {
- let datetime =
- Variant::DateTime(DateTime::parse("2020-02-19 13:00 +0200", "%Y-%m-%d %R %z").unwrap());
- let date = Variant::Date(Date::parse("2020-02-19", "%Y-%m-%d").unwrap());
- let time = Variant::Time(Time::parse("13:00", "%R").unwrap());
+ let datetime = Variant::DateTime(
+ DateTime::parse(
+ "2020-02-19 13:00 +0200",
+ format_description!(
+ "[year]-[month]-[day] [hour]:[minute] [offset_hour sign:mandatory][offset_minute]"
+ ),
+ )
+ .unwrap(),
+ );
+
+ let date =
+ Variant::Date(Date::parse("2020-02-19", format_description!("[year]-[month]-[day]")).unwrap());
+ let time = Variant::Time(Time::parse("13:00", format_description!("[hour]:[minute]")).unwrap());
assert_eq!(
datetime.serialize().unwrap(),
[0, 0, 0, 0x10, 0, 0, 37, 133, 19, 2, 202, 28, 128, 3, 0, 0, 28, 32]
);
- assert_eq!(
- date.serialize().unwrap(),
- [0, 0, 0, 0x0e, 0, 0, 37, 133, 19]
- );
+ assert_eq!(date.serialize().unwrap(), [0, 0, 0, 0x0e, 0, 0, 37, 133, 19]);
- assert_eq!(
- time.serialize().unwrap(),
- [0, 0, 0, 0x0f, 0, 2, 202, 28, 128]
- );
+ assert_eq!(time.serialize().unwrap(), [0, 0, 0, 0x0f, 0, 2, 202, 28, 128]);
}
#[test]
fn datetime_deserialize() {
- let datetime =
- Variant::DateTime(DateTime::parse("2020-02-19 13:00 +0200", "%Y-%m-%d %R %z").unwrap());
- let date = Variant::Date(Date::parse("2020-02-19", "%Y-%m-%d").unwrap());
- let time = Variant::Time(Time::parse("13:00", "%R").unwrap());
+ let datetime = Variant::DateTime(
+ DateTime::parse(
+ "2020-02-19 13:00 +0200",
+ format_description!(
+ "[year]-[month]-[day] [hour]:[minute] [offset_hour sign:mandatory][offset_minute]"
+ ),
+ )
+ .unwrap(),
+ );
+
+ let date =
+ Variant::Date(Date::parse("2020-02-19", format_description!("[year]-[month]-[day]")).unwrap());
+ let time = Variant::Time(Time::parse("13:00", format_description!("[hour]:[minute]")).unwrap());
assert_eq!(
(18, datetime),
- Variant::parse(&[0, 0, 0, 0x10, 0, 0, 37, 133, 19, 2, 202, 28, 128, 3, 0, 0, 28, 32])
- .unwrap()
+ Variant::parse(&[0, 0, 0, 0x10, 0, 0, 37, 133, 19, 2, 202, 28, 128, 3, 0, 0, 28, 32]).unwrap()
);
assert_eq!(