因此,我正在学习如何使用Rust构建REST API。在尝试实现下面这行代码时,我一直收到错误信息:
#[derive(Deserialize, Debug)]
pub struct Config {
pub pg: deadpool_postgres::Config,
pub server: ServerConfig,
}这是我得到的错误代码:
error[E0277]: the trait bound `deadpool_postgres::Config:
config::_::_serde::Deserialize<'_>` is not satisfied下面是我在Cargo.toml中的依赖项:
[dependencies]
actix-rt = "2.3.0"
actix-web = "3.3.2"
serde = "1.0.130"
dotenv = "0.15.0"
config = "0.11.0"
tokio-pg-mapper = "0.2.0"
tokio-pg-mapper-derive = "0.2.0"
deadpool-postgres = "0.10.0"
tokio-postgres = "0.7.3"我是Rust的新手,我不太确定这个错误是什么意思,也不知道如何修复它。我正在实现deadpool_postgres,就像在文档中一样,除了在我的文件中,我试图从dotenv文件中提取数据库变量。下面是完整的文件:
use::config::ConfigError;
use serde::Deserialize;
#[derive(Deserialize, Debug)]
pub struct Config {
pub pg: deadpool_postgres::Config,
pub server: ServerConfig,
}
#[derive(Deserialize, Debug)]
pub struct ServerConfig {
pub host: String,
pub port: i32
}
impl Config {
pub fn from_env() -> Result<Self, ConfigError> {
let mut cfg = config::Config::new();
cfg.merge(config::Environment::new())?;
cfg.try_into()
}
}发布于 2021-10-18 18:20:19
编译器告诉您deadpool_postgres::Config结构没有实现Deserialize。
您需要在Cargo.toml中启用"serde“feature才能获得此实现(请参阅list of features)。
这可以像这样完成:
[dependencies]
deadpool-postgres = { version = "0.10.0", features = ["serde"] }https://stackoverflow.com/questions/69620707
复制相似问题