Commit a365233d authored by xuwencheng's avatar xuwencheng

serde

parent 0a556a56
......@@ -31,6 +31,36 @@ pub mod string_or_i32 {
}
}
pub mod string_or_i64 {
use serde::{de, Deserialize, Deserializer, Serializer};
use std::fmt::Display;
pub fn serialize<T, S>(value: &T, serializer: S) -> Result<S::Ok, S::Error>
where
T: Display,
S: Serializer,
{
serializer.collect_str(value)
}
pub fn deserialize<'de, D>(deserializer: D) -> Result<i64, D::Error>
where
D: Deserializer<'de>,
{
#[derive(Deserialize)]
#[serde(untagged)]
enum StringOrI32 {
String(String),
I64(i64),
}
match StringOrI32::deserialize(deserializer)? {
StringOrI32::String(s) => s.parse().map_err(de::Error::custom),
StringOrI32::I64(i) => Ok(i),
}
}
}
pub mod serde_date {
use chrono::{DateTime, Local, NaiveDateTime, TimeZone};
use chrono_tz::Asia::Shanghai;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment