[−][src]Trait sqlx_core::from_row::FromRow
A record that can be built from a row returned by the database.
In order to use query_as the output type must implement FromRow.
Derivable
This trait can be derived by SQLx for any struct. The generated implementation
will consist of a sequence of calls to Row::try_get using the name from each
struct field.
#[derive(sqlx::FromRow)] struct User { id: i32, name: String, }
Field attributes
Several attributes can be specified to customize how each column in a row is read:
rename
When the name of a field in Rust does not match the name of its corresponding column,
you can use the rename attribute to specify the name that the field has in the row.
For example:
#[derive(sqlx::FromRow)] struct User { id: i32, name: String, #[sqlx(rename = "description")] about_me: String }
Given a query such as:
SELECT id, name, description FROM users;
will read the content of the column description into the field about_me.
default
When your struct contains a field that is not present in your query,
if the field type has an implementation for Default,
you can use the default attribute to assign the default value to said field.
For example:
#[derive(sqlx::FromRow)] struct User { id: i32, name: String, #[sqlx(default)] location: Option<String> }
Given a query such as:
SELECT id, name FROM users;
will set the value of the field location to the default value of Option<String>,
which is None.
Required methods
Loading content...Implementations on Foreign Types
impl<'r, R, T1> FromRow<'r, R> for (T1,) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2> FromRow<'r, R> for (T1, T2) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3> FromRow<'r, R> for (T1, T2, T3) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4> FromRow<'r, R> for (T1, T2, T3, T4) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5> FromRow<'r, R> for (T1, T2, T3, T4, T5) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8, T9> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8, T9) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
T13: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
T13: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
T13: Decode<'r, R::Database> + Type<R::Database>,
T14: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
T13: Decode<'r, R::Database> + Type<R::Database>,
T14: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
T13: Decode<'r, R::Database> + Type<R::Database>,
T14: Decode<'r, R::Database> + Type<R::Database>,
T15: Decode<'r, R::Database> + Type<R::Database>, [src]
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
T13: Decode<'r, R::Database> + Type<R::Database>,
T14: Decode<'r, R::Database> + Type<R::Database>,
T15: Decode<'r, R::Database> + Type<R::Database>,
impl<'r, R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> FromRow<'r, R> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) where
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
T13: Decode<'r, R::Database> + Type<R::Database>,
T14: Decode<'r, R::Database> + Type<R::Database>,
T15: Decode<'r, R::Database> + Type<R::Database>,
T16: Decode<'r, R::Database> + Type<R::Database>, [src]
Loading content...
R: Row,
usize: ColumnIndex<R>,
T1: Decode<'r, R::Database> + Type<R::Database>,
T2: Decode<'r, R::Database> + Type<R::Database>,
T3: Decode<'r, R::Database> + Type<R::Database>,
T4: Decode<'r, R::Database> + Type<R::Database>,
T5: Decode<'r, R::Database> + Type<R::Database>,
T6: Decode<'r, R::Database> + Type<R::Database>,
T7: Decode<'r, R::Database> + Type<R::Database>,
T8: Decode<'r, R::Database> + Type<R::Database>,
T9: Decode<'r, R::Database> + Type<R::Database>,
T10: Decode<'r, R::Database> + Type<R::Database>,
T11: Decode<'r, R::Database> + Type<R::Database>,
T12: Decode<'r, R::Database> + Type<R::Database>,
T13: Decode<'r, R::Database> + Type<R::Database>,
T14: Decode<'r, R::Database> + Type<R::Database>,
T15: Decode<'r, R::Database> + Type<R::Database>,
T16: Decode<'r, R::Database> + Type<R::Database>,