use cyberex::{
custom_format_xtime,
xtime::datatime::{XTime, XTimeStrFormat},
};
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
custom_format_xtime!(XTimeCustom2, XTimeStrFormat::Custom("%Y-%m-%d %H:%M:%S".to_string()));
#[test]
fn test_case_xtime_custom() {
#[serde_as]
#[derive(Deserialize, Serialize)]
struct MyTime {
#[serde_as(as = "XTimeCustom2")]
time: XTime,
}
let json_str = r#"{"time":"2023-11-10 14:43:51"}"#;
let my_time: MyTime = serde_json::from_str(json_str).unwrap();
assert_eq!(my_time.time.as_timestamp_s(), 1699598631);
assert_eq!(serde_json::to_string(&my_time).unwrap(), json_str);
}