#[cfg(feature = "chrono")]
use npsd::{Payload, Schema, Info};
#[cfg(feature = "chrono")]
use chrono::{ Utc, Local, DateTime, FixedOffset, TimeZone};
#[cfg(feature = "chrono")]
#[derive(Schema, Info, Clone, PartialEq, Debug)]
struct ChronoTime {
date0: DateTime<Utc>,
date1: DateTime<Local>,
date2: DateTime<FixedOffset>,
}
#[cfg(feature = "chrono")]
#[test]
fn test_chrono_payload() {
use pretty_hex::PrettyHex;
#[cfg(feature = "info")]
use npsd::NextTrace;
#[cfg(not(feature = "info"))]
use npsd::Next;
let mut ctx = ();
#[cfg(not(feature = "info"))]
let mut next = Next::default();
#[cfg(feature = "info")]
let mut next = NextTrace::default();
let instance = ChronoTime {
date0: Utc.timestamp_opt(61, 0).unwrap(),
date1: Utc::now().with_timezone(&Local),
date2: FixedOffset::east_opt(5 * 12).unwrap().with_ymd_and_hms(2016, 11, 08, 0, 0, 0).unwrap()
};
instance.into_packet(&mut ctx, &mut next).unwrap();
println!("Encoded: {:?}", next.serialized().hex_dump());
let deserialized = ChronoTime::from_packet(&mut ctx, &mut next).unwrap();
assert_eq!(instance, deserialized);
}