I am trying to create my first Rust app with database support, I am using Diesel with SQLite, whenever I build my application I get the following error message:
failed to resolve: use of undeclared crate or module `categorys` --> src/models.rs:14:12 |14 | pub struct Category { | ^^^^^^^^ use of undeclared crate or module `categorys`error[E0433]: failed to resolve: use of undeclared crate or module `correspondents` --> src/models.rs:21:12 |21 | pub struct Correspondent { | ^^^^^^^^^^^^^ use of undeclared crate or module `correspondents`error[E0433]: failed to resolve: use of undeclared crate or module `doctypes` --> src/models.rs:27:12 |27 | pub struct Doctype { | ^^^^^^^ use of undeclared crate or module `doctypes`error[E0433]: failed to resolve: use of undeclared crate or module `documents` --> src/models.rs:37:12 |37 | pub struct Document { | ^^^^^^^^ use of undeclared crate or module `documents`error: aborting due to 4 previous errors
My cargo.toml
:
[package]name = "Rekorder"version = "0.1.0"authors = ["ossama"]edition = "2018"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]diesel = { version = "1.4.4", features = ["sqlite"] }diesel_cli_ext = "0.3.6"dotenv = "0.15.0"chrono = "0.4"[dependencies.gtk]version = "0.9.0"features = ["v3_16"][dependencies.gio]version = ""features = ["v2_44"]
My models.rs
:
// Generated by diesel_ext#![allow(unused)]#![allow(clippy::all)]use chrono::NaiveDate;use diesel::Queryable;use diesel::Identifiable;use diesel::sql_types::Binary;#[derive(Queryable, Debug, Identifiable)]pub struct Category { pub id: i32, pub name: String, pub color: Option<i32>,}#[derive(Queryable, Debug, Identifiable)]pub struct Correspondent { pub id: i32, pub name: String,}#[derive(Queryable, Debug, Identifiable)]pub struct Doctype { pub id: i32, pub name: String, pub correspondent_name: Option<String>, pub support_extra_date_number: Option<bool>, pub icon: Option<Binary>,}#[derive(Queryable, Debug, Identifiable)]#[primary_key(number, date_of_document, doc_type_id)]pub struct Document { pub number: i32, pub date_of_document: NaiveDate, pub doc_type_id: i32, pub extra_number: Option<String>, pub extra_date: Option<NaiveDate>, pub correspondent_id: i32, pub content: String, pub notes: Option<String>, pub category_id: Option<i32>, pub document_file_name: Option<String>, pub document_file_size: Option<i32>, pub document_file: Option<Binary>,}
My schema.rs
:
table! { category (id) { id -> Integer, name -> Text, color -> Nullable<Integer>, }}table! { correspondent (id) { id -> Integer, name -> Text, }}table! { doctype (id) { id -> Integer, name -> Text, correspondent_name -> Nullable<Text>, support_extra_date_number -> Nullable<Bool>, icon -> Nullable<Binary>, }}table! { document (number, date_of_document, doc_type_id) { number -> Integer, date_of_document -> Date, doc_type_id -> Integer, extra_number -> Nullable<Text>, extra_date -> Nullable<Date>, correspondent_id -> Integer, content -> Text, notes -> Nullable<Text>, category_id -> Nullable<Integer>, document_file_name -> Nullable<Text>, document_file_size -> Nullable<Integer>, document_file -> Nullable<Binary>, }}joinable!(document -> category (category_id));joinable!(document -> correspondent (correspondent_id));joinable!(document -> doctype (doc_type_id));allow_tables_to_appear_in_same_query!( category, correspondent, doctype, document,);
and finally my main.rs
:
mod models;fn main() { println!("Hello, world!");}
I tried to add use schema::*
to my model.rs
to no success as the model is not found.I also tried this solution to no success.
I cannot get to use the correct scopes, I am new to rust, I still getting used to its paradigm