我正在尝试运行来自 postgres_types
文档的 rust 代码。
这里可以找到示例代码:postgres_types
我的 rust 环境:
cargo --version cargo 1.40.0-nightly (5da4b4d47 2019-10-28)
rustc --version rustc 1.40.0-nightly (b520af6fd 2019-11-03)
main.rs
#[cfg(feature = "derive")]
use postgres_types::{ToSql, FromSql};
#[derive(Debug, ToSql, FromSql)]
enum Mood {
Sad,
Ok,
Happy,
}
fn main() {
let mood = Mood::Sad;
println!("{:?}", mood);
}
Cargo.toml
...
[dependencies]
postgres-types = "0.1.0-alpha.1"
当我尝试使用cargo run
运行时,出现以下情况:
error: cannot find derive macro `ToSql` in this scope
--> src\main.rs:4:17
|
4 | #[derive(Debug, ToSql, FromSql)]
| ^^^^^
error: cannot find derive macro `FromSql` in this scope
--> src\main.rs:4:24
|
4 | #[derive(Debug, ToSql, FromSql)]
| ^^^^^^^
在这里我做错了什么?很明显我漏掉了一些基础的东西。我没有正确地导入宏吗?
#[cfg(feature = "derive")]
,然后它就可以工作了!很高兴它能够工作,但我承认我并不完全理解这个机制。 - James Schinnerpostgres_types::{FromSql, ToSql};
导入FromSql
和ToSql
,而不是从postgresql
重新导出的版本。 - mirosval