pub struct ArrayV {
pub array: Array,
pub offset: usize,
/* private fields */
}Expand description
§ArrayView
Logical, windowed view over an Array.
ArrayView handles indexing offsets automatically so that the View behaves like a regular array.
§Purpose
This is used to return an indexable view over a subset of the array. Additionally, it can be used to cache null counts for those regions, which can be used to speed up calculations.
§Behaviour
- Indices are always relative to the window.
- Holds a reference to the original
Arrayand window bounds. - Windowing uses an arc clone
- All access (get/index, etc.) is offset-correct and bounds-checked.
- Null count is computed once (on demand or at creation) and cached for subsequent use.
§Notes
Fields§
§array: ArrayThe outer array that this view is derived from - we retain a reference to it. Importantly, this is the full array - not the view, and thus should not be accessed as though it were the view subset.
offset: usizeThe index offset from 0 that for where this view starts from the outer array
Implementations§
Source§impl ArrayV
impl ArrayV
Sourcepub fn new(array: Array, offset: usize, len: usize) -> ArrayV
pub fn new(array: Array, offset: usize, len: usize) -> ArrayV
Construct a windowed view of array[offset..offset+len), with optional precomputed null count.
Sourcepub fn new_nc(
array: Array,
offset: usize,
len: usize,
null_count: usize,
) -> ArrayV
pub fn new_nc( array: Array, offset: usize, len: usize, null_count: usize, ) -> ArrayV
Construct a windowed view, supplying a precomputed null count.
Sourcepub fn get<T>(&self, i: usize) -> Option<<T as MaskedArray>::CopyType>where
T: MaskedArray + 'static,
pub fn get<T>(&self, i: usize) -> Option<<T as MaskedArray>::CopyType>where
T: MaskedArray + 'static,
Returns the value at logical index i within the window, or None if out of bounds or null.
Sourcepub fn get_unchecked<T>(&self, i: usize) -> Option<<T as MaskedArray>::CopyType>where
T: MaskedArray + 'static,
pub fn get_unchecked<T>(&self, i: usize) -> Option<<T as MaskedArray>::CopyType>where
T: MaskedArray + 'static,
Returns the value at logical index i within the window (unchecked).
Sourcepub fn get_str(&self, i: usize) -> Option<&str>
pub fn get_str(&self, i: usize) -> Option<&str>
Returns the string value at logical index i within the window, or None if out of bounds or null.
Sourcepub unsafe fn get_str_unchecked(&self, i: usize) -> Option<&str>
pub unsafe fn get_str_unchecked(&self, i: usize) -> Option<&str>
Returns the string value at logical index i within the window.
§Safety
Skips bounds checks, but will still return None if null.
Sourcepub fn slice(&self, offset: usize, len: usize) -> ArrayV
pub fn slice(&self, offset: usize, len: usize) -> ArrayV
Returns a new window view into a sub-range of this view.
Sourcepub fn to_typed_vec<T>(&self) -> Result<Vec64<T>, KernelError>where
T: Numeric,
pub fn to_typed_vec<T>(&self) -> Result<Vec64<T>, KernelError>where
T: Numeric,
Extract array data as Vec64<T>, casting numeric values if necessary.
- If array type matches T exactly, copies the slice directly
- If array is a different numeric type, casts each element via
NumCast - Returns error if array type is not numeric or nulls are present
§Example
let av = ArrayV::from(Array::from_float64(...));
let floats: Vec64<f64> = av.to_typed_vec::<f64>()?;Sourcepub fn gather_indices(&self, indices: &[usize]) -> Array
pub fn gather_indices(&self, indices: &[usize]) -> Array
Gather specific indices from this view into a new materialised Array. Indices are relative to this view’s window.
Sourcepub fn data_ptr_and_byte_len(&self) -> (*const u8, usize, usize)
pub fn data_ptr_and_byte_len(&self) -> (*const u8, usize, usize)
Returns a pointer and metadata for raw access
This is not logical length - it is total raw bytes in the buffer, so for non-fixed width types such as bit-packed booleans or strings, please factor this in accordingly.
Sourcepub fn end(&self) -> usize
pub fn end(&self) -> usize
Returns the exclusive end index of the window (relative to parent array).
Sourcepub fn as_tuple(&self) -> (Array, usize, usize)
pub fn as_tuple(&self) -> (Array, usize, usize)
Returns the underlying window as a tuple: (Array, offset, len).
Note: This clones the Arc-wrapped Array.
Sourcepub fn as_tuple_ref(&self) -> (&Array, usize, usize)
pub fn as_tuple_ref(&self) -> (&Array, usize, usize)
Returns a reference tuple: (&Array, offset, len).
This avoids cloning the Arc and returns a reference with a lifetime tied to this ArrayV.
Sourcepub fn null_count(&self) -> usize
pub fn null_count(&self) -> usize
Returns the null count in the window, caching the result after first calculation.
Sourcepub fn null_mask_view(&self) -> Option<BitmaskV>
pub fn null_mask_view(&self) -> Option<BitmaskV>
Returns a windowed view over the underlying null mask, if any.
Trait Implementations§
Source§impl Concatenate for ArrayV
impl Concatenate for ArrayV
Source§fn concat(self, other: ArrayV) -> Result<ArrayV, MinarrowError>
fn concat(self, other: ArrayV) -> Result<ArrayV, MinarrowError>
Concatenates two array views by materialising both to owned arrays, concatenating them, and wrapping the result back in a view.
§Notes
- This operation copies data from both views to create owned arrays.
- The resulting view has offset=0 and length equal to the combined length.
Source§impl From<&FieldArray> for ArrayV
&FieldArray -> ArrayView
impl From<&FieldArray> for ArrayV
&FieldArray -> ArrayView
Arc bumps inner array with offset 0, length self.len().
Source§fn from(field_array: &FieldArray) -> ArrayV
fn from(field_array: &FieldArray) -> ArrayV
Source§impl From<ArrayV> for BooleanArrayV
impl From<ArrayV> for BooleanArrayV
Source§fn from(view: ArrayV) -> BooleanArrayV
fn from(view: ArrayV) -> BooleanArrayV
Source§impl From<ArrayV> for NumericArrayV
impl From<ArrayV> for NumericArrayV
Source§fn from(view: ArrayV) -> NumericArrayV
fn from(view: ArrayV) -> NumericArrayV
Source§impl From<ArrayV> for TextArrayV
impl From<ArrayV> for TextArrayV
Source§fn from(view: ArrayV) -> TextArrayV
fn from(view: ArrayV) -> TextArrayV
Source§impl From<BooleanArrayV> for ArrayV
Available on crate feature views only.BooleanArrayView -> ArrayView
impl From<BooleanArrayV> for ArrayV
views only.BooleanArrayView -> ArrayView
Converts by wrapping the inner Arc
Source§fn from(view: BooleanArrayV) -> ArrayV
fn from(view: BooleanArrayV) -> ArrayV
Source§impl From<FieldArray> for ArrayV
FieldArray -> ArrayView
impl From<FieldArray> for ArrayV
FieldArray -> ArrayView
Takes self.array then offset 0, length self.len())
Source§fn from(field_array: FieldArray) -> ArrayV
fn from(field_array: FieldArray) -> ArrayV
Source§impl From<NumericArrayV> for ArrayV
Available on crate feature views only.NumericArrayView -> ArrayView
impl From<NumericArrayV> for ArrayV
views only.NumericArrayView -> ArrayView
Converts by wrapping the inner NumericArray as Array::NumericArray.
Source§fn from(view: NumericArrayV) -> ArrayV
fn from(view: NumericArrayV) -> ArrayV
Source§impl From<TextArrayV> for ArrayV
Available on crate feature views only.TextArrayView -> ArrayView
impl From<TextArrayV> for ArrayV
views only.TextArrayView -> ArrayView
Converts by wrapping the inner TextArray as Array::TextArray.
Source§fn from(view: TextArrayV) -> ArrayV
fn from(view: TextArrayV) -> ArrayV
Source§impl RowSelection for ArrayV
Available on crate feature select only.
impl RowSelection for ArrayV
select only.