pub struct Row { /* private fields */ }Expand description
A container for a single row within a query result set.
RowIterator::next() yields a Row.
Each Row contains parsed cell values and a reference to the table schema.
§Zero-Copy Struct Mapping via Derive Macros
Define typed structs with #[derive(FromRow)] to convert rows directly into
your domain types using TryFrom<Row> without unnecessary allocations:
#[derive(FromRow, Debug)]
struct UserStats {
name: String,
count: i64,
}
let user: UserStats = row.try_into()?;
println!("{}: {}", user.name, user.count);§Field Extraction by Name or Index
Retrieve individual cell values by column name (&str) or index (usize)
using get(), try_get(), or
take():
let name: String = row.get("name");
let age: i64 = row.get(1);
println!("{name} is {age} years old");Implementations§
Source§impl Row
impl Row
Sourcepub fn try_get<T: FromSql, I: ColumnIndex>(
&self,
index: I,
) -> Result<T, RowError>
pub fn try_get<T: FromSql, I: ColumnIndex>( &self, index: I, ) -> Result<T, RowError>
Attempts to retrieve a value from the row by column name or zero-based index.
The return type must implement FromSql.
§Errors
Returns RowError::ColumnNotFound
if the column does not exist,
RowError::IndexOutOfRange if
the index exceeds schema bounds, or
RowError::TypeConversion if
the value cannot be converted to T.
§Example
let msg: String = row.try_get("msg")?;
println!("Value: {msg}");Sourcepub fn take<T: FromSql, I: ColumnIndex>(
&mut self,
index: I,
) -> Result<T, RowError>
pub fn take<T: FromSql, I: ColumnIndex>( &mut self, index: I, ) -> Result<T, RowError>
Takes ownership of a value from the row by column name or zero-based index.
This replaces the cell value in the row with Value::Null in-place to
avoid cloning. Attempting to read the column again after calling take()
yields Value::Null.
§Errors
Returns the same errors as try_get().
§Example
let text: String = row.take("big_text")?;
println!("Length: {}", text.len());Trait Implementations§
Auto Trait Implementations§
impl Freeze for Row
impl RefUnwindSafe for Row
impl Send for Row
impl Sync for Row
impl Unpin for Row
impl UnsafeUnpin for Row
impl UnwindSafe for Row
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request