Skip to main content

Module rows

Module rows 

Source
Expand description

Rows iterator for query results - Rust idiomatic API

§Example

use radixdb_api::{Database, FromRow, ResultRow};
use radixdb_core::Result;
// Idiomatic Rust iteration
for row in db.query("SELECT * FROM users", ())? {
    let row = row?;
    let id: i64 = row.get(0)?;
    let name: String = row.get(1)?;
    println!("{}: {}", id, name);
}

// With combinators
let names: Vec<String> = db.query("SELECT name FROM users", ())?
    .map(|r| r.and_then(|row| row.get(0)))
    .collect::<Result<_>>()?;

// With FromRow for struct mapping
struct User { id: i64, name: String }

impl FromRow for User {
    fn from_row(row: &ResultRow) -> Result<Self> {
        Ok(User {
            id: row.get(0)?,
            name: row.get(1)?,
        })
    }
}

let users: Vec<User> = db.query_as("SELECT id, name FROM users", ())?;

Structs§

ResultRow
A single row from a query result with typed accessors
Rows
Iterator over query result rows

Traits§

FromRow
Trait for converting a database row into a Rust struct