Skip to main content

ViewResultIteratorExt

Trait ViewResultIteratorExt 

Source
pub trait ViewResultIteratorExt: Iterator + Sized {
    type Item;

    // Provided method
    fn try_flatten(
        self,
    ) -> Result<Vec<<Self as ViewResultIteratorExt>::Item>, ViewAccessError>
       where Result<Vec<<Self as ViewResultIteratorExt>::Item>, ViewAccessError>: FromIterator<<Self as Iterator>::Item> { ... }
}
Expand description

Extension trait providing convenience methods for iterators over Result<T, ViewAccessError>.

This trait is automatically implemented for any iterator yielding Result<T, ViewAccessError>, such as the iterators returned by FromRecordBatch::from_record_batch.

Required Associated Types§

Source

type Item

The success type of the Result items.

Provided Methods§

Source

fn try_flatten( self, ) -> Result<Vec<<Self as ViewResultIteratorExt>::Item>, ViewAccessError>

Flatten the Result iterator, returning all views or the first error.

This consumes the iterator and returns a Result containing either:

  • Ok(Vec<T>) with all successfully accessed views
  • Err(ViewAccessError) with the first error encountered
§Errors

Returns the first ViewAccessError encountered while iterating.

§Example
use typed_arrow::prelude::*;

#[derive(Record)]
struct Row {
    id: i32,
    name: String,
}

// Returns all views or first error
let views = batch.iter_views::<Row>()?.try_flatten()?;
for row in views {
    println!("{}: {}", row.id, row.name);
}

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<I, T> ViewResultIteratorExt for I
where I: Iterator<Item = Result<T, ViewAccessError>>,

Available on crate feature views only.
Source§

type Item = T