提问者:小点点

为什么DateTime<Tz>不能满足服务器de::序列化?


extern crate serde;
extern crate serde_json;

#[macro_use]
extern crate serde_derive;


use chrono::{self, Date,DateTime, TimeZone};
use serde_derive::{Serialize,Deserialize}; // 1.0.91


#[derive(Serialize,Deserialize )]
struct Test<Tz>
where Tz:TimeZone,
{
    t:DateTime<Tz>
}

fn main(){

}

上面的代码不会编译为错误:

错误[E0277]: trait绑定Chrono::datetime::DateTime

我有

chrono = {version="0.4",features = ["serde"]}

在我Cargo.toml

我发现实现在这里:https://docs.rs/chrono/0.4.6/chrono/struct.DateTime.html#impl-Serialize

完整的代码示例在这里https://play.rust-lang.org/?version=stable

但我不确定操场是否启用了serde功能。


共1个答案

匿名用户

抱歉,伙计们,问题就像@crazysim在评论中说的那样。

DateTime没有实现反序列化特征。

如果我删除它,代码将工作:

extern crate serde;
extern crate serde_json;

#[macro_use]
extern crate serde_derive;


use chrono::{self,DateTime, TimeZone};



#[derive(Serialize )]
struct Test<Tz>
where Tz:TimeZone,
{
    t:DateTime<Tz>
}

fn main(){

}