Skip to main content

NumericArrayV

Struct NumericArrayV 

Source
pub struct NumericArrayV {
    pub array: NumericArray,
    pub offset: usize,
    /* private fields */
}
Expand description

§NumericArrayView

Read-only, zero-copy view over a [offset .. offset + len) window of a NumericArray.

§Purpose

  • Return an indexable subrange without cloning buffers.
  • Optionally cache per-window null counts for faster repeated passes.

§Behaviour

  • Groups integer and float variants under one enum.
  • Upcasts via get_f64 for uniform handling.
  • Further slicing yields another borrowed view.

§Fields

  • array: backing NumericArray (enum over numeric types).
  • offset: starting index into the backing array.
  • len: logical number of elements in the view.
  • null_count: cached Option<usize> for this window (internal).

§Notes

  • Not thread-safe due to Cell. Create per-thread views with slice.
  • Use to_numeric_array to materialise the window.

Fields§

§array: NumericArray§offset: usize

Implementations§

Source§

impl NumericArrayV

Source

pub fn new(array: NumericArray, offset: usize, len: usize) -> Self

Creates a new NumericArrayView with the given offset and length.

Source

pub fn new_nc( array: NumericArray, offset: usize, len: usize, null_count: usize, ) -> Self

Creates a new NumericArrayView with a precomputed null count.

Source

pub fn is_empty(&self) -> bool

Returns true if the view is empty.

Source

pub fn inner_array(&self) -> Array

Returns the full backing array wrapped as an Array enum, ignoring the view’s offset and length.

Use this to access inner array methods. The returned array is the unwindowed original.

Source

pub fn get_f64(&self, i: usize) -> Option<f64>

Returns the value at logical index i as f64, or None if out of bounds or null.

Converts any numeric types to f64, simplifying usage by avoiding explicit enum matches in caller code.

§Notes
  • Returns None if i is out of bounds or the value is null.
  • Upcasts integer and float types to f64 for uniform downstream handling.
Source

pub unsafe fn get_f64_unchecked(&self, i: usize) -> Option<f64>

Unchecked, returns None for nulls, skips bounds check.

Converts any numeric types to f64, simplifying usage by avoiding explicit enum matches in caller code.

Source

pub fn slice(&self, offset: usize, len: usize) -> Self

Returns a windowed view into a sub-range of this view.

Source

pub fn to_numeric_array(&self) -> NumericArray

Materialise a deep copy as an owned NumericArray for the window.

Source

pub fn end(&self) -> usize

Returns the end index of the view.

Source

pub fn as_tuple(&self) -> (NumericArray, usize, usize)

Returns the view as a tuple (array, offset, len).

Note: This clones the Arc-wrapped NumericArray.

Source

pub fn as_tuple_ref(&self) -> (&NumericArray, usize, usize)

Returns a reference tuple: (&NumericArray, offset, len).

This avoids cloning the Arc and returns a reference with a lifetime tied to this NumericArrayV.

Source

pub fn len(&self) -> usize

Returns the length of the window

Source

pub fn null_count(&self) -> usize

Returns the number of nulls in the view.

Source

pub fn null_mask_view(&self) -> Option<BitmaskV>

Returns the null mask as a windowed BitmaskView.

Source

pub fn set_null_count(&self, count: usize) -> Result<(), usize>

Sets the cached null count for the view.

Returns Ok(()) if the value was set, or Err(count) if it was already initialised. This is thread-safe and can only succeed once per NumericArrayV instance.

Source

pub fn guarantee_f64(&mut self) -> (&[f64], Option<&Bitmask>, Option<usize>)

Guarantees the backing array is Float64, then returns the f64 slice, null mask, and null count for this view’s window.

If already Float64, this is a pass-through. Otherwise the full backing NumericArray is cast to Float64 via NumericArray::cow_into_f64, preserving the window offset and length.

When multiple views share the same backing array, the first view to call this will trigger the cast. If it holds the sole Arc reference, the old data is consumed in place. If other references exist, the data is cloned, leaving the shared original untouched. Subsequent views that still reference the original will cast independently when they reach this call, so it generally is best avoided in such contexts as it would clone for every independent window view.

Trait Implementations§

Source§

impl Clone for NumericArrayV

Source§

fn clone(&self) -> NumericArrayV

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Concatenate for NumericArrayV

Source§

fn concat(self, other: Self) -> Result<Self, MinarrowError>

Concatenates two numeric array views by materialising both to owned numeric arrays, concatenating them, and wrapping the result back in a view.

§Notes
  • This operation copies data from both views to create owned numeric arrays.
  • The resulting view has offset=0 and length equal to the combined length.
Source§

impl Debug for NumericArrayV

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for NumericArrayV

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<Array> for NumericArrayV

Source§

fn from(array: Array) -> Self

Converts to this type from the input type.
Source§

impl From<ArrayV> for NumericArrayV

Source§

fn from(view: ArrayV) -> Self

Converts to this type from the input type.
Source§

impl From<FieldArray> for NumericArrayV

Source§

fn from(field_array: FieldArray) -> Self

Converts to this type from the input type.
Source§

impl From<NumericArray> for NumericArrayV

Source§

fn from(array: NumericArray) -> Self

Converts to this type from the input type.
Source§

impl From<NumericArrayV> for ArrayV

Available on crate feature views only.

NumericArrayView -> ArrayView

Converts by wrapping the inner NumericArray as Array::NumericArray.

Source§

fn from(view: NumericArrayV) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for NumericArrayV

Source§

fn eq(&self, other: &NumericArrayV) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Shape for NumericArrayV

Source§

fn shape(&self) -> ShapeDim

Returns arbitrary Shape dimension for any data shape
Source§

fn shape_1d(&self) -> usize

Returns the first dimension shape Read more
Source§

fn shape_2d(&self) -> (usize, usize)

Returns the first and second dimension shapes Read more
Source§

fn shape_3d(&self) -> (usize, usize, usize)

Returns the first, second and third dimension shapes Read more
Source§

fn shape_4d(&self) -> (usize, usize, usize, usize)

Returns the first, second, third and fourth dimension shapes Read more
Source§

impl TryFrom<Value> for NumericArrayV

Available on crate feature views only.
Source§

type Error = MinarrowError

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

fn try_from(v: Value) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl StructuralPartialEq for NumericArrayV

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CustomValue for T
where T: Any + Send + Sync + Clone + PartialEq + Debug,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Downcasts the type as Any
Source§

fn deep_clone(&self) -> Arc<dyn CustomValue>

Returns a deep clone of the object. Read more
Source§

fn eq_box(&self, other: &(dyn CustomValue + 'static)) -> bool

Performs semantic equality on the boxed object. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> 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
Source§

impl<T> Key for T
where T: Clone,

Source§

fn align() -> usize

The alignment necessary for the key. Must return a power of two.
Source§

fn size(&self) -> usize

The size of the key in bytes.
Source§

unsafe fn init(&self, ptr: *mut u8)

Initialize the key in the given memory location. Read more
Source§

unsafe fn get<'a>(ptr: *const u8) -> &'a T

Get a reference to the key from the given memory location. Read more
Source§

unsafe fn drop_in_place(ptr: *mut u8)

Drop the key in place. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

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

Initializes a with the given initializer. Read more
Source§

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

Dereferences the given pointer. Read more
Source§

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

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Print for T
where T: Display,

Source§

fn print(&self)
where Self: Display,

Source§

impl<T> ToCompactString for T
where T: Display,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> ToStringFallible for T
where T: Display,

Source§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

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
Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> PlanCallbackArgs for T

Source§

impl<T> PlanCallbackOut for T