Struct RowsBatchRef

Source
pub struct RowsBatchRef<'a, T> { /* private fields */ }
Expand description

This struct is similar to RowsBatch, but it holds a reference to a slice of rows (instead of an owned vector) and an offset in each row.

It is guaranteed that all rows in self.rows have a length of at least row_len + offset. The effective row returned by row method is &self.rows[index][self.offset..self.offset + self.row_len]. Unfortunately, due to lifetime issues, we can’t unify RowsBatch and RowsBatchRef into a single generic struct parameterized by the container type.

Implementations§

Source§

impl<'a, T> RowsBatchRef<'a, T>

Source

pub fn new(rows: &'a [&'a [T]], row_len: usize) -> Self

Create a new RowsBatchRef from a slice of rows and the given row length.

§Panics

In case if any of the rows has a length smaller than row_len.

Source

pub fn new_with_offset( rows: &'a [&'a [T]], offset: usize, row_len: usize, ) -> Self

Create a new RowsBatchRef from a slice of rows and the given row length and offset.

§Panics

In case if any of the rows has a length smaller than from offset + row_len.

Source

pub unsafe fn new_unchecked(rows: &'a [&'a [T]], row_len: usize) -> Self

Create a new RowsBatchRef from a slice of rows and the given row length and offset.

§Safety

This function is unsafe because it does not check if the rows have the enough length. It is the caller’s responsibility to ensure that row_len is less than or equal to the length of each row.

Source

pub unsafe fn new_with_offset_unchecked( rows: &'a [&'a [T]], offset: usize, row_len: usize, ) -> Self

Create a new RowsBatchRef from a slice of rows and the given row length and offset.

§Safety

This function is unsafe because it does not check if the rows have the enough length. It is the caller’s responsibility to ensure that offset + row_len is less than or equal to the length of each row.

Source

pub fn iter(&self) -> impl Iterator<Item = &'a [T]> + '_

Source

pub fn row(&self, index: usize) -> &'a [T]

Source

pub fn n_rows(&self) -> usize

Source

pub fn row_len(&self) -> usize

Source

pub fn is_empty(&self) -> bool

Source

pub fn map(&self, indices: impl AsRef<[usize]>) -> RowsBatch<'a, T>

Returns a new RowsBatch with the specified rows selected by the given indices.

Source

pub fn columns_subrange(&self, range: impl RangeBounds<usize>) -> Self

Returns a new RowsBatchRef with the specified columns selected by the given indices range.

Auto Trait Implementations§

§

impl<'a, T> Freeze for RowsBatchRef<'a, T>

§

impl<'a, T> RefUnwindSafe for RowsBatchRef<'a, T>
where T: RefUnwindSafe,

§

impl<'a, T> Send for RowsBatchRef<'a, T>
where T: Sync,

§

impl<'a, T> Sync for RowsBatchRef<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for RowsBatchRef<'a, T>

§

impl<'a, T> UnwindSafe for RowsBatchRef<'a, T>
where T: RefUnwindSafe,

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.

§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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