[英]Illogical `mismatched types` in Rust
寻求您的支持,我在我们的项目中有不合逻辑的mismatched types
。
项目由docker compose up
。 实际上图像在 3-4 个月内可以正常工作,没有问题; 但现在它显示错误,如下图所示。
示例错误(注意它发生了很多次):
error[E0308]: mismatched types
--> db/src/pg/user_profiles.rs:158:27
|
158 | &[&is_worker, &*user_id],
| ^^^^^^^^^ expected `bool`, found `i64`
|
= note: expected reference `&bool`
found reference `&i64`
此错误的代码片段如下:
pub struct UserId(pub i64);
pub async fn update_is_worker(user_id: UserId, is_worker: bool) -> Result<()> {
let client = PG_POOL.get().await?;
let stmt = client
.prepare_typed(
"\
UPDATE user_profiles \
SET \
is_worker = $1 \
WHERE user_id = $2;\
",
&[Type::BOOL, Type::INT8],
)
.await?;
client.execute(&stmt, &[&is_worker, &*user_id]).await?;
Ok(())
}
我从skeletizzle
的 Rust 服务器 @ Discord 中得到了一个解决方案,他让我编辑如下行: client.execute(&stmt, &[&is_worker as _, &*user_id as _]).await?;
我有很多这些错误,所以我确实用相同的概念更改了具有相同错误的类似行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.