pub struct Row<'r> { /* private fields */ }Expand description
A single row borrowed from a Rows iterator. Lives only as long
as the iterator; call Row::to_owned_row to detach it if you need
to keep it past the next next() call.
Implementations§
Source§impl<'r> Row<'r>
impl<'r> Row<'r>
Sourcepub fn get<T: FromValue>(&self, idx: usize) -> Result<T>
pub fn get<T: FromValue>(&self, idx: usize) -> Result<T>
Value at column index idx. Returns a clean error if out of
bounds or the type conversion fails.
Sourcepub fn get_by_name<T: FromValue>(&self, name: &str) -> Result<T>
pub fn get_by_name<T: FromValue>(&self, name: &str) -> Result<T>
Value at column named name. Case-sensitive.
Examples found in repository?
examples/rust/quickstart.rs (line 26)
14fn main() -> Result<()> {
15 let mut conn = Connection::open_in_memory()?;
16
17 conn.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);")?;
18 conn.execute("INSERT INTO users (name, age) VALUES ('alice', 30);")?;
19 conn.execute("INSERT INTO users (name, age) VALUES ('bob', 25);")?;
20 conn.execute("INSERT INTO users (name, age) VALUES ('charlie', 40);")?;
21
22 println!("All users:");
23 let stmt = conn.prepare("SELECT id, name, age FROM users;")?;
24 let mut rows = stmt.query()?;
25 while let Some(row) = rows.next()? {
26 let id: i64 = row.get_by_name("id")?;
27 let name: String = row.get_by_name("name")?;
28 // `Option<i64>` wraps NULL cleanly — `age` is declared
29 // nullable so the typed accessor surfaces None when absent.
30 let age: Option<i64> = row.get_by_name("age")?;
31 println!(
32 " {} — {} ({})",
33 id,
34 name,
35 age.map(|a| a.to_string())
36 .unwrap_or_else(|| "NULL".to_string())
37 );
38 }
39
40 // Transactions: BEGIN + INSERT + ROLLBACK leaves the table untouched.
41 conn.execute("BEGIN;")?;
42 conn.execute("INSERT INTO users (name, age) VALUES ('will_vanish', 99);")?;
43 println!("\nMid-transaction row count: {}", count_users(&mut conn)?);
44 conn.execute("ROLLBACK;")?;
45 println!(
46 "Post-rollback row count: {} (unchanged)",
47 count_users(&mut conn)?
48 );
49
50 Ok(())
51}Sourcepub fn to_owned_row(&self) -> OwnedRow
pub fn to_owned_row(&self) -> OwnedRow
Detaches from the parent Rows iterator. Useful when you want
to keep rows past the next Rows::next() call.
Auto Trait Implementations§
impl<'r> Freeze for Row<'r>
impl<'r> RefUnwindSafe for Row<'r>
impl<'r> Send for Row<'r>
impl<'r> Sync for Row<'r>
impl<'r> Unpin for Row<'r>
impl<'r> UnsafeUnpin for Row<'r>
impl<'r> UnwindSafe for Row<'r>
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