pub struct Row { /* private fields */ }
Expand description
A row of data from a query.
Data can be accessed either by copying through get
or try_get
methods, or moving by value using the IntoIterator
implementation.
// by-reference
let row = client
.query("SELECT @P1 AS col1", &[&"test"])
.await?
.into_row()
.await?
.unwrap();
assert_eq!(Some("test"), row.get("col1"));
// ...or by-value
let row = client
.query("SELECT @P1 AS col1", &[&"test"])
.await?
.into_row()
.await?
.unwrap();
for val in row.into_iter() {
assert_eq!(
Some(String::from("test")),
String::from_sql_owned(val)?
)
}
Implementations§
source§impl Row
impl Row
sourcepub fn columns(&self) -> &[Column]
pub fn columns(&self) -> &[Column]
Columns defining the row data. Columns listed here are in the same order as the resulting data.
§Example
let row = client
.query("SELECT 1 AS foo, 2 AS bar", &[])
.await?
.into_row()
.await?
.unwrap();
assert_eq!("foo", row.columns()[0].name());
assert_eq!("bar", row.columns()[1].name());
sourcepub fn result_index(&self) -> usize
pub fn result_index(&self) -> usize
The result set number, starting from zero and increasing if the stream has results from more than one query.
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the number of columns in the row.
§Example
let row = client
.query("SELECT 1, 2", &[])
.await?
.into_row()
.await?
.unwrap();
assert_eq!(2, row.len());
sourcepub fn get<'a, R, I>(&'a self, idx: I) -> Option<R>where
R: FromSql<'a>,
I: QueryIdx,
pub fn get<'a, R, I>(&'a self, idx: I) -> Option<R>where
R: FromSql<'a>,
I: QueryIdx,
Retrieve a column value for a given column index, which can either be the zero-indexed position or the name of the column.
§Example
let row = client
.query("SELECT @P1 AS col1", &[&1i32])
.await?
.into_row()
.await?
.unwrap();
assert_eq!(Some(1i32), row.get(0));
assert_eq!(Some(1i32), row.get("col1"));
§Panics
- The requested type conversion (SQL->Rust) is not possible.
- The given index is out of bounds (column does not exist).
Use try_get
for a non-panicking version of the function.
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 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
Mutably borrows from an owned value. Read more