Skip to main content

RowStream

Struct RowStream 

Source
pub struct RowStream<'a> { /* private fields */ }
Expand description

A streaming row-by-row iterator over query results.

Created by [Connection::query_stream()]. Yields rows one at a time via next(), avoiding full materialization of large result sets in memory.

The stream holds an exclusive borrow of the connection — no other queries can run until the stream is dropped or fully consumed.

§Example

let mut stream = conn.query_stream("SELECT * FROM users", &[]).await?;
while let Some(row) = stream.next().await? {
    let name: String = row.get(0);
}

Implementations§

Source§

impl<'a> RowStream<'a>

Source

pub async fn next(&mut self) -> Result<Option<Row>>

Fetch the next row from the stream.

Returns Ok(Some(row)) for each row, Ok(None) when the query is complete, or Err on server/protocol error.

Source

pub async fn close(self) -> Result<()>

Close the stream early, draining any remaining server messages.

Call this instead of dropping when you want to reuse the connection for subsequent queries after only partially consuming the stream.

Source

pub fn description(&self) -> &RowDescription

The row description for this stream’s columns.

Source

pub fn is_done(&self) -> bool

Returns true if the stream has been fully consumed or closed.

Auto Trait Implementations§

§

impl<'a> Freeze for RowStream<'a>

§

impl<'a> !RefUnwindSafe for RowStream<'a>

§

impl<'a> Send for RowStream<'a>

§

impl<'a> Sync for RowStream<'a>

§

impl<'a> Unpin for RowStream<'a>

§

impl<'a> UnsafeUnpin for RowStream<'a>

§

impl<'a> !UnwindSafe for RowStream<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more