pub trait Queryable<ST, DB>: Sizedwhere
DB: Backend,{
type Row: FromStaticSqlRow<ST, DB>;
// Required method
fn build(row: Self::Row) -> Result<Self>;
}
Expand description
Trait indicating that a record can be queried from the database.
Types which implement Queryable
represent the result of a SQL query. This
does not necessarily mean they represent a single database table.
Diesel represents the return type of a query as a tuple. The purpose of this trait is to convert from a tuple of Rust values that have been deserialized into your struct.
This trait can be derived
§How to resolve compiler errors while loading data from the database
In case you getting uncomprehensable compiler errors while loading data
from the database you might want to consider using
#[derive(Selectable)]
+
#[diesel(check_for_backend(YourBackendType))]
to check for mismatching fields at compile
time. This drastically improves the quality of the generated error messages by pointing
to concrete mismatches at field level. You need to specify the concrete database backend
this specific struct is indented to be used with, as otherwise rustc cannot correctly
identify the required deserialization implementation.
§Interaction with NULL
/Option
Nullable
types can be queried into Option
.
This is valid for single fields, tuples, and structures with Queryable
.
With tuples and structs, the process for deserializing an Option<(A,B,C)>
is
to attempt to deserialize A
, B
and C
, and if either of these return an
UnexpectedNullError
, the Option
will be
deserialized as None
.
If all succeed, the Option
will be deserialized as Some((a,b,c))
.
§Examples
§Simple mapping from query to struct
If we just want to map a query to our struct, we can use derive
.
#[derive(Queryable, PartialEq, Debug)]
struct User {
id: i32,
name: String,
}
let first_user = users.order_by(id).first(connection)?;
let expected = User { id: 1, name: "Sean".into() };
assert_eq!(expected, first_user);
§Interaction with NULL
/Option
§Single field
table! {
animals {
id -> Integer,
species -> VarChar,
legs -> Integer,
name -> Nullable<VarChar>,
}
}
#[derive(Queryable, PartialEq, Debug)]
struct Animal {
id: i32,
name: Option<String>,
}
let all_animals = animals.select((id, name)).order_by(id).load(connection)?;
let expected = vec![Animal { id: 1, name: Some("Jack".to_owned()) }, Animal { id: 2, name: None }];
assert_eq!(expected, all_animals);
§Multiple fields
#[derive(Queryable, PartialEq, Debug)]
struct UserWithPost {
id: i32,
post: Option<Post>,
}
#[derive(Queryable, PartialEq, Debug)]
struct Post {
id: i32,
title: String,
}
let all_posts = users::table
.left_join(posts::table)
.select((
users::id,
(posts::id, posts::title).nullable()
))
.order_by((users::id, posts::id))
.load(connection)?;
let expected = vec![
UserWithPost { id: 1, post: Some(Post { id: 1, title: "My first post".to_owned() }) },
UserWithPost { id: 1, post: Some(Post { id: 2, title: "About Rust".to_owned() }) },
UserWithPost { id: 2, post: Some(Post { id: 3, title: "My first post too".to_owned() }) },
UserWithPost { id: 3, post: None },
];
assert_eq!(expected, all_posts);
§deserialize_as
attribute
If we want to do additional work during deserialization, we can use
deserialize_as
to use a different implementation.
struct LowercaseString(String);
impl Into<String> for LowercaseString {
fn into(self) -> String {
self.0
}
}
impl<DB> Queryable<Text, DB> for LowercaseString
where
DB: Backend,
String: FromSql<Text, DB>,
{
type Row = String;
fn build(s: String) -> deserialize::Result<Self> {
Ok(LowercaseString(s.to_lowercase()))
}
}
#[derive(Queryable, PartialEq, Debug)]
struct User {
id: i32,
#[diesel(deserialize_as = LowercaseString)]
name: String,
}
let first_user = users.first(connection)?;
let expected = User { id: 1, name: "sean".into() };
assert_eq!(expected, first_user);
§Manual implementation
Alternatively, we can implement the trait for our struct manually.
use schema::users;
use diesel::deserialize::{self, Queryable};
type DB = diesel::sqlite::Sqlite;
#[derive(PartialEq, Debug)]
struct User {
id: i32,
name: String,
}
impl Queryable<users::SqlType, DB> for User {
type Row = (i32, String);
fn build(row: Self::Row) -> deserialize::Result<Self> {
Ok(User {
id: row.0,
name: row.1.to_lowercase(),
})
}
}
let first_user = users.first(connection)?;
let expected = User { id: 1, name: "sean".into() };
assert_eq!(expected, first_user);
Required Associated Types§
sourcetype Row: FromStaticSqlRow<ST, DB>
type Row: FromStaticSqlRow<ST, DB>
The Rust type you’d like to map from.
This is typically a tuple of all of your struct’s fields.
Required Methods§
Object Safety§
Implementations on Foreign Types§
source§impl<T0, ST0> Queryable<Record<(ST0,)>, Pg> for (T0,)
Available on crate feature postgres_backend
only.
impl<T0, ST0> Queryable<Record<(ST0,)>, Pg> for (T0,)
postgres_backend
only.source§impl<T0, T1, ST0, ST1> Queryable<Record<(ST0, ST1)>, Pg> for (T0, T1)
Available on crate feature postgres_backend
only.
impl<T0, T1, ST0, ST1> Queryable<Record<(ST0, ST1)>, Pg> for (T0, T1)
postgres_backend
only.source§impl<T0, T1, T2, ST0, ST1, ST2> Queryable<Record<(ST0, ST1, ST2)>, Pg> for (T0, T1, T2)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, ST0, ST1, ST2> Queryable<Record<(ST0, ST1, ST2)>, Pg> for (T0, T1, T2)
postgres_backend
only.source§impl<T0, T1, T2, T3, ST0, ST1, ST2, ST3> Queryable<Record<(ST0, ST1, ST2, ST3)>, Pg> for (T0, T1, T2, T3)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, ST0, ST1, ST2, ST3> Queryable<Record<(ST0, ST1, ST2, ST3)>, Pg> for (T0, T1, T2, T3)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, ST0, ST1, ST2, ST3, ST4> Queryable<Record<(ST0, ST1, ST2, ST3, ST4)>, Pg> for (T0, T1, T2, T3, T4)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, ST0, ST1, ST2, ST3, ST4> Queryable<Record<(ST0, ST1, ST2, ST3, ST4)>, Pg> for (T0, T1, T2, T3, T4)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, ST0, ST1, ST2, ST3, ST4, ST5> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5)>, Pg> for (T0, T1, T2, T3, T4, T5)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, ST0, ST1, ST2, ST3, ST4, ST5> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5)>, Pg> for (T0, T1, T2, T3, T4, T5)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, ST0, ST1, ST2, ST3, ST4, ST5, ST6> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6)>, Pg> for (T0, T1, T2, T3, T4, T5, T6)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, ST0, ST1, ST2, ST3, ST4, ST5, ST6> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6)>, Pg> for (T0, T1, T2, T3, T4, T5, T6)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
Available on crate feature postgres_backend
only.
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15> Queryable<Record<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15)>, Pg> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
postgres_backend
only.source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15), __DB>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15), __DB>,
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14), __DB>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14), __DB>,
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13), __DB>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13), __DB>,
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12), __DB>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12), __DB>,
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11), __DB>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11), __DB>,
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10), __DB>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10), __DB>,
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9), __DB>,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)where
__DB: Backend,
Self: FromStaticSqlRow<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9), __DB>,
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
source§impl<T0, T1, T2, T3, T4, T5, T6, T7, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<T0, T1, T2, T3, T4, T5, T6, T7, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7), __DB> for (T0, T1, T2, T3, T4, T5, T6, T7)
source§impl<T0, T1, T2, T3, T4, T5, T6, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6), __DB> for (T0, T1, T2, T3, T4, T5, T6)
impl<T0, T1, T2, T3, T4, T5, T6, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6), __DB> for (T0, T1, T2, T3, T4, T5, T6)
source§impl<T0, T1, T2, T3, T4, T5, __DB, ST0, ST1, ST2, ST3, ST4, ST5> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5), __DB> for (T0, T1, T2, T3, T4, T5)
impl<T0, T1, T2, T3, T4, T5, __DB, ST0, ST1, ST2, ST3, ST4, ST5> Queryable<(ST0, ST1, ST2, ST3, ST4, ST5), __DB> for (T0, T1, T2, T3, T4, T5)
source§impl<T0, T1, T2, T3, T4, __DB, ST0, ST1, ST2, ST3, ST4> Queryable<(ST0, ST1, ST2, ST3, ST4), __DB> for (T0, T1, T2, T3, T4)
impl<T0, T1, T2, T3, T4, __DB, ST0, ST1, ST2, ST3, ST4> Queryable<(ST0, ST1, ST2, ST3, ST4), __DB> for (T0, T1, T2, T3, T4)
source§impl<T0, T1, T2, T3, __DB, ST0, ST1, ST2, ST3> Queryable<(ST0, ST1, ST2, ST3), __DB> for (T0, T1, T2, T3)
impl<T0, T1, T2, T3, __DB, ST0, ST1, ST2, ST3> Queryable<(ST0, ST1, ST2, ST3), __DB> for (T0, T1, T2, T3)
source§impl<T0, T1, T2, __DB, ST0, ST1, ST2> Queryable<(ST0, ST1, ST2), __DB> for (T0, T1, T2)
impl<T0, T1, T2, __DB, ST0, ST1, ST2> Queryable<(ST0, ST1, ST2), __DB> for (T0, T1, T2)
source§impl<T0, T1, __DB, ST0, ST1> Queryable<(ST0, ST1), __DB> for (T0, T1)
impl<T0, T1, __DB, ST0, ST1> Queryable<(ST0, ST1), __DB> for (T0, T1)
source§impl<T, ST> Queryable<Range<ST>, Pg> for (Bound<T>, Bound<T>)
Available on crate feature postgres_backend
only.
impl<T, ST> Queryable<Range<ST>, Pg> for (Bound<T>, Bound<T>)
postgres_backend
only.source§impl<Tz: TimeZone, __DB, __ST> Queryable<__ST, __DB> for DateTime<Tz>
Available on crate feature chrono
only.
impl<Tz: TimeZone, __DB, __ST> Queryable<__ST, __DB> for DateTime<Tz>
chrono
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for IpNetwork
Available on crate features network-address
and postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for IpNetwork
network-address
and postgres_backend
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for Value
Available on crate feature serde_json
and (crate features postgres_backend
or mysql_backend
) only.
impl<__DB, __ST> Queryable<__ST, __DB> for Value
serde_json
and (crate features postgres_backend
or mysql_backend
) only.source§impl<__DB, __ST> Queryable<__ST, __DB> for SystemTime
impl<__DB, __ST> Queryable<__ST, __DB> for SystemTime
source§impl<__DB, __ST> Queryable<__ST, __DB> for BigDecimal
Available on crate feature numeric
only.
impl<__DB, __ST> Queryable<__ST, __DB> for BigDecimal
numeric
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for NaiveDateTime
Available on crate feature chrono
only.
impl<__DB, __ST> Queryable<__ST, __DB> for NaiveDateTime
chrono
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for OffsetDateTime
Available on crate feature time
only.
impl<__DB, __ST> Queryable<__ST, __DB> for OffsetDateTime
time
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for PrimitiveDateTime
Available on crate feature time
only.
impl<__DB, __ST> Queryable<__ST, __DB> for PrimitiveDateTime
time
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for Uuid
Available on crate features uuid
and postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for Uuid
uuid
and postgres_backend
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for [u8; 6]
Available on crate feature postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for [u8; 6]
postgres_backend
only.source§impl<__T, __DB, ST0, ST1, ST2> Queryable<Nullable<(ST0, ST1, ST2)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2)>, __DB>,
(ST0, ST1, ST2): SqlType,
impl<__T, __DB, ST0, ST1, ST2> Queryable<Nullable<(ST0, ST1, ST2)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2)>, __DB>,
(ST0, ST1, ST2): SqlType,
source§impl<__T, __DB, ST0, ST1, ST2, ST3> Queryable<Nullable<(ST0, ST1, ST2, ST3)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3)>, __DB>,
(ST0, ST1, ST2, ST3): SqlType,
impl<__T, __DB, ST0, ST1, ST2, ST3> Queryable<Nullable<(ST0, ST1, ST2, ST3)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3)>, __DB>,
(ST0, ST1, ST2, ST3): SqlType,
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4)>, __DB>,
(ST0, ST1, ST2, ST3, ST4): SqlType,
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4)>, __DB>,
(ST0, ST1, ST2, ST3, ST4): SqlType,
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5): SqlType,
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5): SqlType,
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5, ST6): SqlType,
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5, ST6): SqlType,
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7): SqlType,
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7): SqlType,
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8): SqlType,
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8): SqlType,
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9): SqlType,
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)>, __DB> for Option<__T>where
__DB: Backend,
Self: FromStaticSqlRow<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)>, __DB>,
(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9): SqlType,
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10)>, __DB> for Option<__T>
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10)>, __DB> for Option<__T>
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11)>, __DB> for Option<__T>
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11)>, __DB> for Option<__T>
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12)>, __DB> for Option<__T>
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12)>, __DB> for Option<__T>
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13)>, __DB> for Option<__T>
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13)>, __DB> for Option<__T>
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14)>, __DB> for Option<__T>
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14)>, __DB> for Option<__T>
source§impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15)>, __DB> for Option<__T>
impl<__T, __DB, ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15> Queryable<Nullable<(ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15)>, __DB> for Option<__T>
Implementors§
source§impl<'a, __DB, __ST> Queryable<__ST, __DB> for MigrationVersion<'a>
impl<'a, __DB, __ST> Queryable<__ST, __DB> for MigrationVersion<'a>
type Row = MigrationVersion<'a>
source§impl<__DB, __ST> Queryable<__ST, __DB> for PgNumeric
Available on crate feature postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for PgNumeric
postgres_backend
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for MysqlTime
Available on crate feature mysql_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for MysqlTime
mysql_backend
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for PgDate
Available on crate feature postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for PgDate
postgres_backend
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for PgInterval
Available on crate feature postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for PgInterval
postgres_backend
only.type Row = PgInterval
source§impl<__DB, __ST> Queryable<__ST, __DB> for PgMoney
Available on crate feature postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for PgMoney
postgres_backend
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for PgTime
Available on crate feature postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for PgTime
postgres_backend
only.source§impl<__DB, __ST> Queryable<__ST, __DB> for PgTimestamp
Available on crate feature postgres_backend
only.
impl<__DB, __ST> Queryable<__ST, __DB> for PgTimestamp
postgres_backend
only.