[−][src]Trait serde_db::de::DeserializableResultset
Interface for a database resultset to support deserialization.
Associated Types
type E: From<DeserializationError> + Sized
Error type of the database driver.
type ROW: DeserializableRow
Concrete type for the DB row, which must implement DeserializabeRow
.
Required methods
fn has_multiple_rows(&mut self) -> DeserializationResult<bool>
Returns true if more than one row is contained, including eventually not yet fetched rows.
Errors
E.g. fetching can fail.
fn next(&mut self) -> DeserializationResult<Option<Self::ROW>>
Removes the next row and returns it, or None if the result set is empty, or an error.
Errors
E.g. fetching can fail.
fn number_of_fields(&self) -> usize
Returns the number of fields in each (complete) row.
fn fieldname(&self, field_idx: usize) -> Option<&str>
Returns the name of the column at the specified index.
Provided methods
fn into_typed<'de, T>(self) -> Result<T, Self::E> where
T: Deserialize<'de>,
Self: Sized,
T: Deserialize<'de>,
Self: Sized,
A provided method that translates a resultset into a given rust type
that implements serde::de::Deserialize
.
The type of the target variable needs to be specified explicitly, so that
into_typed()
can derive the type it needs to serialize into:
#[derive(Deserialize)] struct MyStruct { ... } let typed_result: Vec<MyStruct> = resultset.into_typed()?;
Errors
An error is produced if deserialization into the target type is not possible, or if fetching fails.