<Struct> 未实现特征“diesel::Insertable<schema::trd::table>”

The trait `diesel::Insertable<schema::trd::table>` is not implemented for <Struct>

我正在尝试使用 diesel 编写一个简单的插入语句,但我遇到了问题:

特性 diesel::Insertableschema::tbl::table 没有为

实现

我的插入看起来像:

pub fn insert_trades(trades : Struct) {

use super::super::schema::tbl::dsl::*;

let conn : &PgConnection = &establish_connection().get().unwrap();

insert_into(tbl).values(&trades).get_result(conn);

}

我的结构看起来像:

#[derive(Debug, Serialize, Deserialize, Insertable, Queryable)]

#[table_name = "tbl"]

pub struct Struct {

pub trade_id: Option<String>,

pub event_time: Option<i64>,

pub event_type: Option<String>,

pub trade_time: Option<i64>,

pub symbol: Option<String>,

pub buyer_id: Option<i64>,

pub seller_id: Option<i64>,

pub price: Option<String>,

pub quantity: Option<String>

}

Schema.rs

table! {

tbl (trade_id) {

trade_id -> Varchar,

event_time -> Int8,

event_type -> Varchar,

trade_time -> Int8,

symbol -> Varchar,

buyer_id -> Int8,

seller_id -> Int8,

price -> Varchar,

quantity -> Varchar,

}

}

编译器抛出的问题是:

error[E0277]: the trait bound `&my_trader::models::trade::Struct: diesel::Insertable<schema::tbl::table>` is not satisfied
 --> src/service/trade_service.rs:8:40
  |
8 |     insert_into(tbl).values(&trades).get_result(conn);
  |                                        ^^^^^^^ the trait `diesel::Insertable<schema::tbl::table>` is not implemented for `&my_trader::models::trade::Struct`
  |
  = help: the following implementations were found:
            <&'insert my_trader::models::trade::Struct as diesel::Insertable<my_trader::schema::tbl::table>>
            <my_trader::models::trade::Struct as diesel::Insertable<my_trader::schema::tbl::table>>

我不确定我做错了什么。我尝试 google 但没有运气,而且对 rust 世界还很陌生,所以无法理解问题所在。谢谢!

我发现了问题。基本上,我尝试导入的 Struct 是一个完全不同的包。虽然它指的是正确的文件,但当我像 crate:: 这样更改导入时,它工作得很好。早些时候它指的是像 my_trader:: 这样的文件,它是由 IDE.

自动完成的