繁体   English   中英

Rust 中不合逻辑的“不匹配类型”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM