微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rust Diesel:特性绑定`NaiveDateTime: Deserialize<'_>` 不满足

如何解决Rust Diesel:特性绑定`NaiveDateTime: Deserialize<'_>` 不满足

我是铁锈和柴油的新手。并尝试使用火箭框架创建一个小型演示 api。
获取错误特征绑定 NaiveDateTime: Deserialize<'_> 不满足

我用谷歌搜索并找到了一些有用的链接,例如:https://github.com/serde-rs/serde/issues/759
好像是版本有问题。

这是我的文件
schema.rs

table! {
    department (dept_id) {
        dept_id -> Int4,dept_name -> Nullable<Text>,created_on -> Nullable<Timestamp>,created_by -> Nullable<Text>,modified_on -> Nullable<Timestamp>,modified_by -> Nullable<Text>,is_active -> Nullable<Bool>,}
}

cargo.toml

[dependencies]
diesel = { version = "1.4.5",features = ["postgres","chrono","numeric"] }
dotenv = "0.15.0"
chrono = { version = "0.4.19" }
bigdecimal = { version = "0.1.0" }
rocket = "0.4.6"
rocket_codegen = "0.4.6"
r2d2-diesel = "1.0.0"
r2d2 = "0.8.9"
serde = { version = "1.0.118",features = ["derive"] }
serde_derive = "1.0.118"
serde_json = "1.0.60"

[dependencies.rocket_contrib]
version = "*"
default-features = false
features = ["json"]

model.rs

#![allow(unused)]
#![allow(clippy::all)]

use super::schema::department;
use serde::Serialize;
use serde::Deserialize;

use chrono::NaiveDateTime;
use bigdecimal::BigDecimal;
#[derive(Queryable,Debug,Identifiable,Serialize,Deserialize)]
#[primary_key(dept_id)]
#[table_name = "department"]
pub struct Department {
    pub dept_id: i32,pub dept_name: Option<String>,pub created_on: Option<NaiveDateTime>,pub created_by: Option<String>,pub modified_on: Option<NaiveDateTime>,pub modified_by: Option<String>,pub is_active: Option<bool>,}

ma​​in.rs

#[macro_use]
extern crate diesel;
extern crate dotenv;
extern crate serde;
extern crate serde_derive;
extern crate serde_json;
extern crate chrono;
extern crate bigdecimal;

mod models;
mod schema;
mod connection;

fn main() {
    println!("Hello,Home!");
}

有人可以帮我吗?
谢谢!

解决方法

您需要在 serde 中的 chrono 中包含 Cargo.toml 功能:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。