Trait diesel::row::Row

source ·
pub trait Row<'a, DB: Backend>: RowIndex<usize> + for<'b> RowIndex<&'b str> + for<'b> RowGatWorkaround<'b, DB> + Sized {
    type InnerPartialRow: Row<'a, DB>;

    // Required methods
    fn field_count(&self) -> usize;
    fn get<'b, I>(&'b self, idx: I) -> Option<FieldRet<'b, Self, DB>>
       where Self: RowIndex<I>,
             'a: 'b;
    fn partial_row(
        &self,
        range: Range<usize>,
    ) -> PartialRow<'_, Self::InnerPartialRow>;

    // Provided method
    fn get_value<ST, T, I>(&self, idx: I) -> Result<T>
       where Self: RowIndex<I>,
             T: FromSql<ST, DB> { ... }
}
Expand description

Represents a single database row.

This trait is used as an argument to FromSqlRow.

Required Associated Types§

source

type InnerPartialRow: Row<'a, DB>

Return type of PartialRow

For all implementations, beside of the Row implementation on PartialRow itself this should be Self.

Required Methods§

source

fn field_count(&self) -> usize

Get the number of fields in the current row

source

fn get<'b, I>(&'b self, idx: I) -> Option<FieldRet<'b, Self, DB>>
where Self: RowIndex<I>, 'a: 'b,

Get the field with the provided index from the row.

Returns None if there is no matching field for the given index

source

fn partial_row( &self, range: Range<usize>, ) -> PartialRow<'_, Self::InnerPartialRow>

Returns a wrapping row that allows only to access fields, where the index is part of the provided range.

Provided Methods§

source

fn get_value<ST, T, I>(&self, idx: I) -> Result<T>
where Self: RowIndex<I>, T: FromSql<ST, DB>,

Get a deserialized value with the provided index from the row.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, 'b, DB, R> Row<'a, DB> for PartialRow<'b, R>
where DB: Backend, R: Row<'a, DB>,