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.