Код IT
← Каталог

Работа с данными и структурами — ORM — Diesel

Фрагмент из «Работа с данными и структурами»: ORM — Diesel.

Rust main.rs
// schema.rs (генерируется)
table! {
    users (id) {
        id -> Integer,
        name -> Text,
        email -> Text,
    }
}

// models.rs
#[derive(Queryable)]
pub struct User {
    pub id: i32,
    pub name: String,
    pub email: String,
}

// Использование
use diesel::prelude::*;
use crate::schema::users;

fn find_user_by_email(conn: &mut PgConnection, email: &str) -> QueryResult<User> {
    users::table
        .filter(users::email.eq(email))
        .first(conn)
}
// schema.rs (генерируется)
table! {
    users (id) {
        id -> Integer,
        name -> Text,
        email -> Text,
    }
}

// models.rs
#[derive(Queryable)]
pub struct User {
    pub id: i32,
    pub name: String,
    pub email: String,
}

// Использование
use diesel::prelude::*;
use crate::schema::users;

fn find_user_by_email(conn: &mut PgConnection, email: &str) -> QueryResult<User> {
    users::table
        .filter(users::email.eq(email))
        .first(conn)
}