无法在Rust/Actix应用程序中对柴油机使用chrono功能

无法在Rust/Actix应用程序中对柴油机使用chrono功能,rust,rust-diesel,Rust,Rust Diesel,我还是铁锈方面的新手 我尝试在我的一些柴油机模型中使用NaiveDateTime 因此,我尝试将chrono作为外部板条箱导入,如下所示: [package] name = "backend" version = "0.1.0" authors = ["My Name <my@emai.l>"] edition = "2018" [dependencies] actix-web="3"

我还是铁锈方面的新手

我尝试在我的一些柴油机模型中使用NaiveDateTime

因此,我尝试将chrono作为外部板条箱导入,如下所示:

[package]
name = "backend"
version = "0.1.0"
authors = ["My Name <my@emai.l>"]
edition = "2018"

[dependencies]
actix-web="3"
diesel= { version = "1.4.5", features = ["mysql", "chrono"] }
dotenv= { version = "0.15.0" }

[[bin]]
name = "main"
path = "src/main.rs"
src/db/models.rs

extern crate diesel;
extern crate chrono;

use diesel::{sql_types};
use chrono;

// model implementations follow below ...
然而,我得到一个错误,说:

can't find crate for `chrono`: can't find crate
chrono被宣布为柴油机功能。我的Cargo.toml如下所示:

[package]
name = "backend"
version = "0.1.0"
authors = ["My Name <my@emai.l>"]
edition = "2018"

[dependencies]
actix-web="3"
diesel= { version = "1.4.5", features = ["mysql", "chrono"] }
dotenv= { version = "0.15.0" }

[[bin]]
name = "main"
path = "src/main.rs"
[软件包]
name=“后端”
version=“0.1.0”
作者=[“我的名字”]
edition=“2018”
[依赖关系]
actix web=“3”
diesel={version=“1.4.5”,功能=[“mysql”,“chrono”]}
dotenv={version=“0.15.0”}
[[bin]]
name=“main”
path=“src/main.rs”

我做错了什么?

您需要安装
chrono
本身

[dependencies]
actix-web = "3"
chrono = "0.4"
diesel = { version = "1.4.5", features = ["mysql", "chrono"] }
dotenv = { version = "0.15.0" }

chrono
功能添加到
diesel
只会使
diesel
编译时依赖于
chrono
并粘合代码以集成它。但是,要在您自己的板条箱中使用
chrono
,您仍然必须在
Cargo.toml

中声明它,但这难道不是版本冲突的来源,即不一致吗?如果我在Cargo.toml中声明的chrono版本与diesel作为功能安装的版本不同,该怎么办?有没有办法监控这两个版本是否同步?@LongHike它可以,但可能不会。这完全是另一个主题,但是如果两个依赖项是“semver兼容的”(1.1 vs 1.2),那么cargo将为两种用途构建一个版本。如果两个依赖项的版本不兼容(1.1 vs 2.0),cargo将构建这两个依赖项以独立使用。如果diesel更新到不兼容的chrono版本,而您正在使用它,编译器将确保您知道有问题。要监视重复,我使用。