pub trait FromRow: Sized {
// Required method
fn from_row(row: &mut Row) -> Result<Self, ExecError>;
}Expand description
A type that can be built from a whole row.
By name for structs (survives column reordering and SELECT * drift; the
mapping generated models will use), by position for tuples (quick ad-hoc
reads). The hand-written shape — the same one code generation will emit —
is one take per field:
use keelson_exec::{ExecError, FromRow, Row};
struct User {
id: i64,
email: Option<String>, // a nullable column must be an Option
}
impl FromRow for User {
fn from_row(row: &mut Row) -> Result<Self, ExecError> {
Ok(User {
id: row.take("id")?,
email: row.take("email")?,
})
}
}Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue, E: FromValue, F: FromValue, G: FromValue, H: FromValue> FromRow for (A, B, C, D, E, F, G, H)
Positional: element N reads column N.
impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue, E: FromValue, F: FromValue, G: FromValue, H: FromValue> FromRow for (A, B, C, D, E, F, G, H)
Positional: element N reads column N.
Source§impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue, E: FromValue, F: FromValue, G: FromValue> FromRow for (A, B, C, D, E, F, G)
Positional: element N reads column N.
impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue, E: FromValue, F: FromValue, G: FromValue> FromRow for (A, B, C, D, E, F, G)
Positional: element N reads column N.
Source§impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue, E: FromValue, F: FromValue> FromRow for (A, B, C, D, E, F)
Positional: element N reads column N.
impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue, E: FromValue, F: FromValue> FromRow for (A, B, C, D, E, F)
Positional: element N reads column N.
Source§impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue, E: FromValue> FromRow for (A, B, C, D, E)
Positional: element N reads column N.
impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue, E: FromValue> FromRow for (A, B, C, D, E)
Positional: element N reads column N.
Source§impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue> FromRow for (A, B, C, D)
Positional: element N reads column N.
impl<A: FromValue, B: FromValue, C: FromValue, D: FromValue> FromRow for (A, B, C, D)
Positional: element N reads column N.
Source§impl<A: FromValue, B: FromValue, C: FromValue> FromRow for (A, B, C)
Positional: element N reads column N.
impl<A: FromValue, B: FromValue, C: FromValue> FromRow for (A, B, C)
Positional: element N reads column N.