Can';t使用diesel板条箱从mysql数据库加载结果

Can';t使用diesel板条箱从mysql数据库加载结果,mysql,rust,rust-cargo,rust-diesel,Mysql,Rust,Rust Cargo,Rust Diesel,使用diesel板条箱加载返回错误,以便与MySQL数据库交互: the trait bound `chart_models::Chart: diesel::Queryable<(diesel::sql_types::Integer, diesel::sql_types::Integer, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types

使用diesel板条箱加载返回错误,以便与MySQL数据库交互:

the trait bound `chart_models::Chart: diesel::Queryable<(diesel::sql_types::Integer, diesel::sql_types::Integer, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Integer, diesel::sql_types::Nullable<diesel::sql_types::Text>, diesel::sql_types::Text), _>` is not satisfied

the trait `diesel::Queryable<(diesel::sql_types::Integer, diesel::sql_types::Integer, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Integer, diesel::sql_types::Nullable<diesel::sql_types::Text>, diesel::sql_types::Text), _>` is not implemented for `chart_models::Chart`

note: required because of the requirements on the impl of `diesel::query_dsl::LoadQuery<_, chart_models::Chart>` for `diesel::query_builder::SelectStatement<schema::chart::table, diesel::query_builder::select_clause::DefaultSelectClause, diesel::query_builder::distinct_clause::NoDistinctClause, diesel::query_builder::where_clause::WhereClause<diesel::expression::operators::Eq<schema::chart::columns::id, diesel::expression::bound::Bound<diesel::sql_types::Integer, i32>>>>`rustc(E0277)
chart_models.rs(33, 14): the trait `diesel::Queryable<(diesel::sql_types::Integer, diesel::sql_types::Integer, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Numeric, diesel::sql_types::Integer, diesel::sql_types::Nullable<diesel::sql_types::Text>, diesel::sql_types::Text), _>` is not implemented for `chart_models::Chart`
不满足特性绑定的'chart\u models::chart:diesel::Queryable'
“chart\u models::chart”未实现特征“diesel::Queryable”`
注意:由于'diesel::query\U dsl::LoadQuery'的impl中对'diesel::query\U builder::SelectStatement`rustc(E0277)的要求,因此需要此选项
chart_models.rs(33,14):chart_models::chart没有实现特性'diesel::Queryable'`
表架构:

table! {
    chart (id) {
        id -> Integer,
        types -> Integer,
        prices -> Decimal,
        time -> Nullable<Varchar>,
        date -> Varchar,
    }
}
表格!{
图表(id){
id->Integer,
类型->整数,
价格->十进制,
时间->可为空,
日期->瓦尔查尔,
}
}
chart_models.rs文件:

use diesel;
use diesel::prelude::*;
use diesel::mysql::MysqlConnection;

use schema::chart;
use schema::chart::dsl::chart as all_chart;
use rust_decimal::Decimal;

pub struct Chart {
    pub id: i32,
    pub types: i32,
    pub prices: Decimal,
    pub time: String,
    pub date: String,
}

impl Chart {
    pub fn show(id: i32, conn: &MysqlConnection) -> Vec<Chart> {
        all_chart
            .find(id)
            .load::<Chart>(conn)
            .expect("Error loading chart infos")
    }

}
使用柴油;
使用柴油机::前奏::*;
使用diesel::mysql::MysqlConnection;
使用schema::chart;
使用schema::chart::dsl::chart作为所有图表;
使用十进制::十进制;
发布结构图{
酒吧id:i32,
发布类型:i32,
酒吧价格:十进制,
酒吧时间:字符串,
发布日期:String,
}
impl图表{
pub fn show(id:i32,conn:&MysqlConnection)->Vec{
全图
.查找(id)
.load::(康涅狄格州)
.expect(“加载图表信息时出错”)
}
}

有人能帮你发现这个问题吗?

看起来你需要图表结构的可查询特性

您可以使用以下派生属性添加它:

#[derive(Queryable)]
pub struct Chart {
    pub id: i32,
    pub types: i32,
    pub prices: Decimal,
    pub time: String,
    pub date: String,
}
错误消息的重要部分是第二行:

the trait `diesel::Queryable<...(details of your struct)...> is not implemented for `chart_models::Chart`
没有为'chart\u models::chart'实现trait'diesel::Queryable`