pub struct Array<V: VTable> { /* private fields */ }Expand description
A typed owned handle to an array.
Array<V> holds an ArrayRef (shared, heap-allocated) and provides typed access
to the encoding-specific data via Deref to V::TypedArrayData.
Buffers are intentionally not stored in the common ArrayInner or ArrayParts state.
Encodings may expose buffers only when writing or serializing, and those buffers need not be the
same representation they keep in memory. For example, an encoding may hold a deserialized
in-memory data structure and synthesize serialized buffers at write time; hoisting buffers here
would force it to retain both forms or make the serialized layout dictate the runtime layout.
This is the primary type for working with typed arrays. Convert to ArrayRef
via into_array() or AsRef<ArrayRef>.
Implementations§
Source§impl<V: VTable> Array<V>
impl<V: VTable> Array<V>
Sourcepub fn try_from_parts(new: ArrayParts<V>) -> VortexResult<Self>
pub fn try_from_parts(new: ArrayParts<V>) -> VortexResult<Self>
Create a typed array from explicit construction parameters.
This is the safe construction path for encoding implementors. It calls
VTable::validate before publishing the array as an ArrayRef.
Sourcepub fn try_from_array_ref(array: ArrayRef) -> Result<Self, ArrayRef>
pub fn try_from_array_ref(array: ArrayRef) -> Result<Self, ArrayRef>
Sourcepub fn encoding_id(&self) -> ArrayId
pub fn encoding_id(&self) -> ArrayId
Returns the encoding ID for V.
Sourcepub fn statistics(&self) -> StatsSetRef<'_>
pub fn statistics(&self) -> StatsSetRef<'_>
Returns this array’s statistics set.
Sourcepub fn data(&self) -> &V::TypedArrayData
pub fn data(&self) -> &V::TypedArrayData
Returns a reference to the encoding-specific data.
Sourcepub fn data_mut(&mut self) -> Option<&mut V::TypedArrayData>
pub fn data_mut(&mut self) -> Option<&mut V::TypedArrayData>
Try to fetch mutable access to the encoding-specific data.
Returns None when this handle is not the unique owner of the backing allocation.
Sourcepub fn try_into_parts(self) -> Result<ArrayParts<V>, Self>
pub fn try_into_parts(self) -> Result<ArrayParts<V>, Self>
Returns the full typed array construction parts if this handle owns the allocation.
Sourcepub fn with_stats_set(self, stats: StatsSet) -> Self
pub fn with_stats_set(self, stats: StatsSet) -> Self
Replace the array’s statistics set and return the same typed handle.
Sourcepub fn into_data(self) -> V::TypedArrayData
pub fn into_data(self) -> V::TypedArrayData
Returns a clone of the inner encoding-specific data.
Source§impl<V: VTable> Array<V>
Public API methods that shadow DynArrayData / ArrayRef methods.
impl<V: VTable> Array<V>
Public API methods that shadow DynArrayData / ArrayRef methods.
Sourcepub fn slice(&self, range: Range<usize>) -> VortexResult<ArrayRef>
pub fn slice(&self, range: Range<usize>) -> VortexResult<ArrayRef>
Lazily or eagerly slice the array to range, depending on available kernels.
pub fn scalar_at(&self, index: usize) -> VortexResult<Scalar>
Use execute_scalar instead, which allows passing an execution context for more efficient execution when fetching multiple scalars from the same array.
Sourcepub fn execute_scalar(
&self,
index: usize,
ctx: &mut ExecutionCtx,
) -> VortexResult<Scalar>
pub fn execute_scalar( &self, index: usize, ctx: &mut ExecutionCtx, ) -> VortexResult<Scalar>
Execute the array to extract a scalar at the given index.
Sourcepub fn filter(&self, mask: Mask) -> VortexResult<ArrayRef>
pub fn filter(&self, mask: Mask) -> VortexResult<ArrayRef>
Filter the array with a selection mask.
Sourcepub fn take(&self, indices: ArrayRef) -> VortexResult<ArrayRef>
pub fn take(&self, indices: ArrayRef) -> VortexResult<ArrayRef>
Gather rows from this array by index.
Sourcepub fn validity(&self) -> VortexResult<Validity>
pub fn validity(&self) -> VortexResult<Validity>
Returns the array’s validity representation.
Sourcepub fn is_valid(
&self,
index: usize,
ctx: &mut ExecutionCtx,
) -> VortexResult<bool>
pub fn is_valid( &self, index: usize, ctx: &mut ExecutionCtx, ) -> VortexResult<bool>
Returns whether index is valid using the provided execution context.
Sourcepub fn is_invalid(
&self,
index: usize,
ctx: &mut ExecutionCtx,
) -> VortexResult<bool>
pub fn is_invalid( &self, index: usize, ctx: &mut ExecutionCtx, ) -> VortexResult<bool>
Returns whether index is null using the provided execution context.
Sourcepub fn all_valid(&self, ctx: &mut ExecutionCtx) -> VortexResult<bool>
pub fn all_valid(&self, ctx: &mut ExecutionCtx) -> VortexResult<bool>
Returns whether every row is valid.
Sourcepub fn all_invalid(&self, ctx: &mut ExecutionCtx) -> VortexResult<bool>
pub fn all_invalid(&self, ctx: &mut ExecutionCtx) -> VortexResult<bool>
Returns whether every row is null.
pub fn to_canonical(&self) -> VortexResult<Canonical>
Use Array::<V>::execute::<Canonical>() instead
Sourcepub fn nbytes(&self) -> u64
pub fn nbytes(&self) -> u64
Returns the estimated physical bytes owned or referenced by this array tree.
Sourcepub fn nbuffers(&self) -> usize
pub fn nbuffers(&self) -> usize
Returns the number of top-level buffers exposed by this encoding.
Sourcepub fn as_constant(&self) -> Option<Scalar>
pub fn as_constant(&self) -> Option<Scalar>
Returns the scalar value when this array is known to be constant.
Sourcepub fn valid_count(&self, ctx: &mut ExecutionCtx) -> VortexResult<usize>
pub fn valid_count(&self, ctx: &mut ExecutionCtx) -> VortexResult<usize>
Counts valid rows, executing validity arrays when necessary.
Sourcepub fn invalid_count(&self, ctx: &mut ExecutionCtx) -> VortexResult<usize>
pub fn invalid_count(&self, ctx: &mut ExecutionCtx) -> VortexResult<usize>
Counts null rows, executing validity arrays when necessary.
Sourcepub fn append_to_builder(
&self,
builder: &mut dyn ArrayBuilder,
ctx: &mut ExecutionCtx,
) -> VortexResult<()>
pub fn append_to_builder( &self, builder: &mut dyn ArrayBuilder, ctx: &mut ExecutionCtx, ) -> VortexResult<()>
Append this array’s logical values to a canonical builder.
Source§impl Array<Bool>
Constructors and consuming methods for BoolArray.
impl Array<Bool>
Constructors and consuming methods for BoolArray.
Sourcepub fn new_handle(
handle: BufferHandle,
offset: usize,
len: usize,
validity: Validity,
) -> Self
pub fn new_handle( handle: BufferHandle, offset: usize, len: usize, validity: Validity, ) -> Self
Constructs a new BoolArray from a BufferHandle.
§Panics
Panics if the validity length is not equal to the bit buffer length.
Sourcepub fn try_new(bits: BitBuffer, validity: Validity) -> VortexResult<Self>
pub fn try_new(bits: BitBuffer, validity: Validity) -> VortexResult<Self>
Constructs a new BoolArray.
§Errors
Returns an error if the provided components do not satisfy the invariants.
Sourcepub fn try_new_from_handle(
bits: BufferHandle,
offset: usize,
len: usize,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new_from_handle( bits: BufferHandle, offset: usize, len: usize, validity: Validity, ) -> VortexResult<Self>
Build a new bool array from a BufferHandle, returning an error if the offset is
too large or the buffer is not large enough to hold the values.
Sourcepub unsafe fn new_unchecked(bits: BitBuffer, validity: Validity) -> Self
pub unsafe fn new_unchecked(bits: BitBuffer, validity: Validity) -> Self
Sourcepub fn validate(bits: &BitBuffer, validity: &Validity) -> VortexResult<()>
pub fn validate(bits: &BitBuffer, validity: &Validity) -> VortexResult<()>
Validates the components that would be used to create a BoolArray.
Sourcepub fn from_indices<I: IntoIterator<Item = usize>>(
length: usize,
indices: I,
validity: Validity,
) -> Self
pub fn from_indices<I: IntoIterator<Item = usize>>( length: usize, indices: I, validity: Validity, ) -> Self
Create a new BoolArray from a set of indices and a length.
All indices must be less than the length.
Sourcepub fn into_bit_buffer(self) -> BitBuffer
pub fn into_bit_buffer(self) -> BitBuffer
Returns the underlying BitBuffer of the array, consuming self.
Source§impl Array<Bool>
impl Array<Bool>
pub fn patch( self, patches: &Patches, ctx: &mut ExecutionCtx, ) -> VortexResult<Self>
Source§impl Array<Bool>
impl Array<Bool>
pub fn opt_bool_vec(&self, ctx: &mut ExecutionCtx) -> Vec<Option<bool>>
pub fn bool_vec(&self, ctx: &mut ExecutionCtx) -> Vec<bool>
Source§impl Array<Chunked>
impl Array<Chunked>
Source§impl Array<Decimal>
impl Array<Decimal>
pub fn into_data_parts(self) -> DecimalDataParts
Source§impl Array<Decimal>
impl Array<Decimal>
Sourcepub fn new<T: NativeDecimalType>(
buffer: Buffer<T>,
decimal_dtype: DecimalDType,
validity: Validity,
) -> Self
pub fn new<T: NativeDecimalType>( buffer: Buffer<T>, decimal_dtype: DecimalDType, validity: Validity, ) -> Self
Creates a new DecimalArray using a host-native buffer.
Sourcepub unsafe fn new_unchecked<T: NativeDecimalType>(
buffer: Buffer<T>,
decimal_dtype: DecimalDType,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked<T: NativeDecimalType>( buffer: Buffer<T>, decimal_dtype: DecimalDType, validity: Validity, ) -> Self
Sourcepub fn try_new<T: NativeDecimalType>(
buffer: Buffer<T>,
decimal_dtype: DecimalDType,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new<T: NativeDecimalType>( buffer: Buffer<T>, decimal_dtype: DecimalDType, validity: Validity, ) -> VortexResult<Self>
Creates a new DecimalArray from a host-native buffer with validation.
Sourcepub fn from_iter<T: NativeDecimalType, I: IntoIterator<Item = T>>(
iter: I,
decimal_dtype: DecimalDType,
) -> Self
pub fn from_iter<T: NativeDecimalType, I: IntoIterator<Item = T>>( iter: I, decimal_dtype: DecimalDType, ) -> Self
Creates a new DecimalArray from an iterator of values.
Sourcepub fn from_option_iter<T: NativeDecimalType, I: IntoIterator<Item = Option<T>>>(
iter: I,
decimal_dtype: DecimalDType,
) -> Self
pub fn from_option_iter<T: NativeDecimalType, I: IntoIterator<Item = Option<T>>>( iter: I, decimal_dtype: DecimalDType, ) -> Self
Creates a new DecimalArray from an iterator of optional values.
Sourcepub fn new_handle(
values: BufferHandle,
values_type: DecimalType,
decimal_dtype: DecimalDType,
validity: Validity,
) -> Self
pub fn new_handle( values: BufferHandle, values_type: DecimalType, decimal_dtype: DecimalDType, validity: Validity, ) -> Self
Creates a new DecimalArray from a BufferHandle.
Sourcepub fn try_new_handle(
values: BufferHandle,
values_type: DecimalType,
decimal_dtype: DecimalDType,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new_handle( values: BufferHandle, values_type: DecimalType, decimal_dtype: DecimalDType, validity: Validity, ) -> VortexResult<Self>
Creates a new DecimalArray from a BufferHandle with validation.
Sourcepub unsafe fn new_unchecked_handle(
values: BufferHandle,
values_type: DecimalType,
decimal_dtype: DecimalDType,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked_handle( values: BufferHandle, values_type: DecimalType, decimal_dtype: DecimalDType, validity: Validity, ) -> Self
Creates a new DecimalArray without validation from a BufferHandle.
§Safety
pub fn patch( self, patches: &Patches, ctx: &mut ExecutionCtx, ) -> VortexResult<Self>
Source§impl Array<Dict>
impl Array<Dict>
Sourcepub fn new(codes: ArrayRef, values: ArrayRef) -> Self
pub fn new(codes: ArrayRef, values: ArrayRef) -> Self
Build a new DictArray from its components, codes and values.
Sourcepub fn try_new(codes: ArrayRef, values: ArrayRef) -> VortexResult<Self>
pub fn try_new(codes: ArrayRef, values: ArrayRef) -> VortexResult<Self>
Build a new DictArray from its components, codes and values.
Sourcepub unsafe fn new_unchecked(codes: ArrayRef, values: ArrayRef) -> Self
pub unsafe fn new_unchecked(codes: ArrayRef, values: ArrayRef) -> Self
Sourcepub unsafe fn set_all_values_referenced(
self,
all_values_referenced: bool,
) -> Self
pub unsafe fn set_all_values_referenced( self, all_values_referenced: bool, ) -> Self
Set whether all values in the dictionary are referenced by at least one code.
§Safety
Source§impl Array<Extension>
impl Array<Extension>
Sourcepub fn new(ext_dtype: ExtDTypeRef, storage_array: ArrayRef) -> Self
pub fn new(ext_dtype: ExtDTypeRef, storage_array: ArrayRef) -> Self
Constructs a new ExtensionArray.
§Panics
Panics if the storage array is not compatible with the extension dtype.
Sourcepub fn try_new(
ext_dtype: ExtDTypeRef,
storage_array: ArrayRef,
) -> VortexResult<Self>
pub fn try_new( ext_dtype: ExtDTypeRef, storage_array: ArrayRef, ) -> VortexResult<Self>
Tries to construct a new ExtensionArray.
Sourcepub fn try_new_from_vtable<V: ExtVTable>(
vtable: V,
metadata: V::Metadata,
storage_array: ArrayRef,
) -> VortexResult<Self>
pub fn try_new_from_vtable<V: ExtVTable>( vtable: V, metadata: V::Metadata, storage_array: ArrayRef, ) -> VortexResult<Self>
Creates a new ExtensionArray from a vtable, metadata, and
a storage array.
Source§impl Array<FixedSizeList>
impl Array<FixedSizeList>
Sourcepub fn new(
elements: ArrayRef,
list_size: u32,
validity: Validity,
len: usize,
) -> Self
pub fn new( elements: ArrayRef, list_size: u32, validity: Validity, len: usize, ) -> Self
Creates a new FixedSizeListArray.
Sourcepub fn try_new(
elements: ArrayRef,
list_size: u32,
validity: Validity,
len: usize,
) -> VortexResult<Self>
pub fn try_new( elements: ArrayRef, list_size: u32, validity: Validity, len: usize, ) -> VortexResult<Self>
Constructs a new FixedSizeListArray.
Sourcepub unsafe fn new_unchecked(
elements: ArrayRef,
list_size: u32,
validity: Validity,
len: usize,
) -> Self
pub unsafe fn new_unchecked( elements: ArrayRef, list_size: u32, validity: Validity, len: usize, ) -> Self
pub fn into_data_parts(self) -> FixedSizeListDataParts
Source§impl Array<Interleave>
impl Array<Interleave>
Sourcepub fn try_new(
values: Vec<ArrayRef>,
array_indices: ArrayRef,
row_indices: ArrayRef,
) -> VortexResult<Self>
pub fn try_new( values: Vec<ArrayRef>, array_indices: ArrayRef, row_indices: ArrayRef, ) -> VortexResult<Self>
Constructs a new InterleaveArray from values and the array_indices / row_indices
selectors.
See the module docs for the full specification and invariants. The selectors must be
non-nullable: they record a definite (array_index, row_index) per row, so null-predicate
handling is the caller’s responsibility, resolved before the interleave is constructed. The
per-row bounds on the selector values are a runtime precondition checked during execution.
Sourcepub unsafe fn new_unchecked(
values: Vec<ArrayRef>,
array_indices: ArrayRef,
row_indices: ArrayRef,
dtype: DType,
) -> Self
pub unsafe fn new_unchecked( values: Vec<ArrayRef>, array_indices: ArrayRef, row_indices: ArrayRef, dtype: DType, ) -> Self
Constructs an InterleaveArray without re-validating the spec invariants.
This is the assembly half of try_new: it lays the selectors into
slots[0]/slots[1] and the values into slots[2..] and stamps dtype, skipping the
Interleave::check pass. It exists for hot internal paths — notably building the
pushed-down validity interleave in ValidityVTable::validity — where the inputs are known
to satisfy the invariants by construction and re-checking them is pure overhead.
§Safety
The caller must uphold every module invariant: at least two values sharing a dtype
up to nullability, both selectors non-nullable unsigned integers of equal length, and dtype
equal to the value returned by Interleave::check for these arguments (the shared value
type with the union of the values’ nullabilities).
Sourcepub unsafe fn new_unchecked_slots(slots: ArraySlots, dtype: DType) -> Self
pub unsafe fn new_unchecked_slots(slots: ArraySlots, dtype: DType) -> Self
Constructs an InterleaveArray from a pre-assembled slots buffer, skipping both the
spec re-check and the slot copy that new_unchecked performs.
This is the lowest-level assembly path: it stamps dtype onto slots as-is. Callers that
already own a correctly laid-out ArraySlots — for example reusing a validated parent’s
selectors while swapping its values — avoid materializing an intermediate Vec<ArrayRef>
and re-pushing it into a fresh ArraySlots.
§Safety
The caller must uphold every module invariant and the slot layout: slots[0] is
the array_indices selector, slots[1] is the row_indices selector, and slots[2..] are
the value arrays. Every slot must be Some, there must be at least two values
(slots.len() >= 4), and dtype must equal the value returned by Interleave::check for
these arguments.
Source§impl Array<List>
impl Array<List>
Sourcepub fn new(elements: ArrayRef, offsets: ArrayRef, validity: Validity) -> Self
pub fn new(elements: ArrayRef, offsets: ArrayRef, validity: Validity) -> Self
Creates a new ListArray.
Sourcepub fn try_new(
elements: ArrayRef,
offsets: ArrayRef,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new( elements: ArrayRef, offsets: ArrayRef, validity: Validity, ) -> VortexResult<Self>
Constructs a new ListArray.
Sourcepub unsafe fn new_unchecked(
elements: ArrayRef,
offsets: ArrayRef,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked( elements: ArrayRef, offsets: ArrayRef, validity: Validity, ) -> Self
pub fn into_data_parts(self) -> ListDataParts
Source§impl Array<List>
impl Array<List>
Sourcepub fn from_iter_slow<O: IntegerPType, I: IntoIterator>(
iter: I,
dtype: Arc<DType>,
) -> VortexResult<ArrayRef>
pub fn from_iter_slow<O: IntegerPType, I: IntoIterator>( iter: I, dtype: Arc<DType>, ) -> VortexResult<ArrayRef>
This is a convenience method to create a list array from an iterator of iterators. This method is slow however since each element is first converted to a scalar and then appended to the array.
pub fn from_iter_opt_slow<O: IntegerPType, I: IntoIterator<Item = Option<T>>, T>( iter: I, dtype: Arc<DType>, ) -> VortexResult<ArrayRef>
Source§impl Array<ListView>
impl Array<ListView>
Sourcepub fn new(
elements: ArrayRef,
offsets: ArrayRef,
sizes: ArrayRef,
validity: Validity,
) -> Self
pub fn new( elements: ArrayRef, offsets: ArrayRef, sizes: ArrayRef, validity: Validity, ) -> Self
Creates a new ListViewArray.
Sourcepub fn try_new(
elements: ArrayRef,
offsets: ArrayRef,
sizes: ArrayRef,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new( elements: ArrayRef, offsets: ArrayRef, sizes: ArrayRef, validity: Validity, ) -> VortexResult<Self>
Constructs a new ListViewArray.
Sourcepub unsafe fn new_unchecked(
elements: ArrayRef,
offsets: ArrayRef,
sizes: ArrayRef,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked( elements: ArrayRef, offsets: ArrayRef, sizes: ArrayRef, validity: Validity, ) -> Self
Sourcepub unsafe fn with_zero_copy_to_list(self, is_zctl: bool) -> Self
pub unsafe fn with_zero_copy_to_list(self, is_zctl: bool) -> Self
Mark whether this list view can be zero-copy converted to a list.
§Safety
pub fn into_data_parts(self) -> ListViewDataParts
Source§impl Array<ListView>
impl Array<ListView>
Sourcepub fn rebuild(
&self,
mode: ListViewRebuildMode,
ctx: &mut ExecutionCtx,
) -> VortexResult<ListViewArray>
pub fn rebuild( &self, mode: ListViewRebuildMode, ctx: &mut ExecutionCtx, ) -> VortexResult<ListViewArray>
Rebuilds the ListViewArray according to the specified mode.
Sourcepub unsafe fn trim_elements(
&self,
start: usize,
end: usize,
) -> VortexResult<ListViewArray>
pub unsafe fn trim_elements( &self, start: usize, end: usize, ) -> VortexResult<ListViewArray>
Unsafely trims elements to the referenced half-open range [start, end), adjusting every offset
down by start. The result preserves the original is_zero_copy_to_list flag.
§SAFETY
start must be the minimum value of offsets, and end should be the maximum value of offsets[i] + size[i]
over all indices i of offsets. Otherwise, offsets and sizes may hold references to elements that no longer exist
and the array will be corrupted.
Source§impl Array<Masked>
impl Array<Masked>
Sourcepub fn try_new(child: ArrayRef, validity: Validity) -> VortexResult<Self>
pub fn try_new(child: ArrayRef, validity: Validity) -> VortexResult<Self>
Constructs a new MaskedArray.
Source§impl Array<Primitive>
impl Array<Primitive>
Sourcepub fn from_option_iter<T: NativePType, I: IntoIterator<Item = Option<T>>>(
iter: I,
) -> Self
pub fn from_option_iter<T: NativePType, I: IntoIterator<Item = Option<T>>>( iter: I, ) -> Self
Create a PrimitiveArray from an iterator of T.
NOTE: we cannot impl FromIterator trait since it conflicts with FromIterator<T>.
Sourcepub fn to_buffer<T: NativePType>(&self) -> Buffer<T>
pub fn to_buffer<T: NativePType>(&self) -> Buffer<T>
Get a buffer in host memory holding all the values.
NOTE: some values may be nonsense if the validity buffer indicates that the value is null.
Sourcepub fn into_buffer<T: NativePType>(self) -> Buffer<T>
pub fn into_buffer<T: NativePType>(self) -> Buffer<T>
Consume the array and get a host Buffer containing the data values.
Sourcepub fn into_buffer_mut<T: NativePType>(self) -> BufferMut<T>
pub fn into_buffer_mut<T: NativePType>(self) -> BufferMut<T>
Extract a mutable buffer from the PrimitiveArray. Attempts to do this with zero-copy if the buffer is uniquely owned, otherwise will make a copy.
Sourcepub fn try_into_buffer_mut<T: NativePType>(
self,
) -> Result<BufferMut<T>, Buffer<T>>
pub fn try_into_buffer_mut<T: NativePType>( self, ) -> Result<BufferMut<T>, Buffer<T>>
Try to extract a mutable buffer from the PrimitiveArray with zero copy.
Source§impl Array<Primitive>
impl Array<Primitive>
pub fn patch( self, patches: &Patches, ctx: &mut ExecutionCtx, ) -> VortexResult<Self>
Source§impl Array<Primitive>
impl Array<Primitive>
pub fn empty<T: NativePType>(nullability: Nullability) -> Self
Sourcepub fn new<T: NativePType>(
buffer: impl Into<Buffer<T>>,
validity: Validity,
) -> Self
pub fn new<T: NativePType>( buffer: impl Into<Buffer<T>>, validity: Validity, ) -> Self
Creates a new PrimitiveArray.
§Panics
Panics if the provided components do not satisfy the invariants.
Sourcepub fn try_new<T: NativePType>(
buffer: Buffer<T>,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new<T: NativePType>( buffer: Buffer<T>, validity: Validity, ) -> VortexResult<Self>
Constructs a new PrimitiveArray.
Sourcepub unsafe fn new_unchecked<T: NativePType>(
buffer: Buffer<T>,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked<T: NativePType>( buffer: Buffer<T>, validity: Validity, ) -> Self
Sourcepub unsafe fn new_unchecked_from_handle(
handle: BufferHandle,
ptype: PType,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked_from_handle( handle: BufferHandle, ptype: PType, validity: Validity, ) -> Self
Sourcepub fn from_buffer_handle(
handle: BufferHandle,
ptype: PType,
validity: Validity,
) -> Self
pub fn from_buffer_handle( handle: BufferHandle, ptype: PType, validity: Validity, ) -> Self
Creates a new PrimitiveArray from a BufferHandle.
Sourcepub fn from_byte_buffer(
buffer: ByteBuffer,
ptype: PType,
validity: Validity,
) -> Self
pub fn from_byte_buffer( buffer: ByteBuffer, ptype: PType, validity: Validity, ) -> Self
Creates a new PrimitiveArray from a ByteBuffer.
Sourcepub fn from_values_byte_buffer(
valid_elems_buffer: ByteBuffer,
ptype: PType,
validity: Validity,
n_rows: usize,
ctx: &mut ExecutionCtx,
) -> Self
pub fn from_values_byte_buffer( valid_elems_buffer: ByteBuffer, ptype: PType, validity: Validity, n_rows: usize, ctx: &mut ExecutionCtx, ) -> Self
Create a PrimitiveArray from a byte buffer containing only the valid elements.
Sourcepub fn validate<T: NativePType>(
buffer: &Buffer<T>,
validity: &Validity,
) -> VortexResult<()>
pub fn validate<T: NativePType>( buffer: &Buffer<T>, validity: &Validity, ) -> VortexResult<()>
Validates the components that would be used to create a PrimitiveArray.
pub fn into_data_parts(self) -> PrimitiveDataParts
pub fn map_each_with_validity<T, R, F>( self, ctx: &mut ExecutionCtx, f: F, ) -> VortexResult<Self>
Source§impl Array<ScalarFn>
impl Array<ScalarFn>
Sourcepub fn try_new(
scalar_fn: ScalarFnRef,
children: Vec<ArrayRef>,
) -> VortexResult<Self>
pub fn try_new( scalar_fn: ScalarFnRef, children: Vec<ArrayRef>, ) -> VortexResult<Self>
Create a new ScalarFnArray from a scalar function and its children.
Sourcepub fn try_new_with_len(
scalar_fn: ScalarFnRef,
children: Vec<ArrayRef>,
len: usize,
) -> VortexResult<Self>
pub fn try_new_with_len( scalar_fn: ScalarFnRef, children: Vec<ArrayRef>, len: usize, ) -> VortexResult<Self>
Create a new ScalarFnArray from a scalar function, children, and an explicit length.
This is needed for zero-child scalar functions and deserialization paths where there is no child array to infer the length from.
Source§impl Array<Struct>
impl Array<Struct>
Sourcepub fn new(
names: FieldNames,
fields: impl Into<Arc<[ArrayRef]>>,
length: usize,
validity: Validity,
) -> Self
pub fn new( names: FieldNames, fields: impl Into<Arc<[ArrayRef]>>, length: usize, validity: Validity, ) -> Self
Creates a new StructArray.
Sourcepub fn try_new(
names: FieldNames,
fields: impl Into<Arc<[ArrayRef]>>,
length: usize,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new( names: FieldNames, fields: impl Into<Arc<[ArrayRef]>>, length: usize, validity: Validity, ) -> VortexResult<Self>
Constructs a new StructArray.
Sourcepub unsafe fn new_unchecked(
fields: impl Into<Arc<[ArrayRef]>>,
dtype: StructFields,
length: usize,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked( fields: impl Into<Arc<[ArrayRef]>>, dtype: StructFields, length: usize, validity: Validity, ) -> Self
Creates a new StructArray without validation.
§Safety
Caller must ensure the field arrays match the supplied dtype, length, and validity.
Sourcepub fn try_new_with_dtype(
fields: impl Into<Arc<[ArrayRef]>>,
dtype: StructFields,
length: usize,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new_with_dtype( fields: impl Into<Arc<[ArrayRef]>>, dtype: StructFields, length: usize, validity: Validity, ) -> VortexResult<Self>
Constructs a new StructArray with an explicit dtype.
Sourcepub fn from_fields<N: AsRef<str>>(items: &[(N, ArrayRef)]) -> VortexResult<Self>
pub fn from_fields<N: AsRef<str>>(items: &[(N, ArrayRef)]) -> VortexResult<Self>
Construct a StructArray from named fields.
Sourcepub fn try_from_iter_with_validity<N: AsRef<str>, A: IntoArray, T: IntoIterator<Item = (N, A)>>(
iter: T,
validity: Validity,
) -> VortexResult<Self>
pub fn try_from_iter_with_validity<N: AsRef<str>, A: IntoArray, T: IntoIterator<Item = (N, A)>>( iter: T, validity: Validity, ) -> VortexResult<Self>
Create a StructArray from an iterator of (name, array) pairs with validity.
Sourcepub fn try_from_iter<N: AsRef<str>, A: IntoArray, T: IntoIterator<Item = (N, A)>>(
iter: T,
) -> VortexResult<Self>
pub fn try_from_iter<N: AsRef<str>, A: IntoArray, T: IntoIterator<Item = (N, A)>>( iter: T, ) -> VortexResult<Self>
Create a StructArray from an iterator of (name, array) pairs.
Sourcepub fn project(&self, projection: &[FieldName]) -> VortexResult<Self>
pub fn project(&self, projection: &[FieldName]) -> VortexResult<Self>
Return a new StructArray with the given projection applied.
Projection does not copy data arrays. Projection is defined by an ordinal array slice which specifies the new ordering of columns in the struct. The projection can be used to perform column re-ordering, deletion, or duplication at a logical level, without any data copying.
Sourcepub fn new_fieldless_with_len(len: usize) -> Self
pub fn new_fieldless_with_len(len: usize) -> Self
Create a fieldless StructArray with the given length.
pub fn into_data_parts(self) -> StructDataParts
pub fn remove_column( &self, name: impl Into<FieldName>, ) -> Option<(Self, ArrayRef)>
pub fn with_column( &self, name: impl Into<FieldName>, array: ArrayRef, ) -> VortexResult<Self>
pub fn remove_column_owned( &self, name: impl Into<FieldName>, ) -> Option<(Self, ArrayRef)>
pub fn try_concat<T>(chunks: impl IntoIterator<Item = T>) -> VortexResult<Self>
Sourcepub fn push_validity_into_children(
&self,
remove_struct_validity: bool,
) -> VortexResult<Self>
pub fn push_validity_into_children( &self, remove_struct_validity: bool, ) -> VortexResult<Self>
Push the struct’s top-level validity into each field, so a row null at the struct level becomes null in every field.
If remove_struct_validity is set the result is non-nullable; otherwise it keeps its
top-level validity.
Source§impl Array<VarBin>
Forwarding constructors for VarBinArray (= Array<VarBin>).
impl Array<VarBin>
Forwarding constructors for VarBinArray (= Array<VarBin>).
pub fn from_vec<T: AsRef<[u8]>>(vec: Vec<T>, dtype: DType) -> Self
pub fn from_iter<T: AsRef<[u8]>, I: IntoIterator<Item = Option<T>>>( iter: I, dtype: DType, ) -> Self
pub fn from_iter_nonnull<T: AsRef<[u8]>, I: IntoIterator<Item = T>>( iter: I, dtype: DType, ) -> Self
Sourcepub fn from_nullable_strs(value: Vec<Option<&str>>) -> Self
pub fn from_nullable_strs(value: Vec<Option<&str>>) -> Self
Create from a vector of optional string slices.
Sourcepub fn from_bytes(value: Vec<&[u8]>) -> Self
pub fn from_bytes(value: Vec<&[u8]>) -> Self
Create from a vector of byte slices.
Sourcepub fn from_nullable_bytes(value: Vec<Option<&[u8]>>) -> Self
pub fn from_nullable_bytes(value: Vec<Option<&[u8]>>) -> Self
Create from a vector of optional byte slices.
pub fn into_data_parts(self) -> VarBinDataParts
Source§impl Array<VarBin>
impl Array<VarBin>
Sourcepub fn new(
offsets: ArrayRef,
bytes: ByteBuffer,
dtype: DType,
validity: Validity,
) -> Self
pub fn new( offsets: ArrayRef, bytes: ByteBuffer, dtype: DType, validity: Validity, ) -> Self
Creates a new VarBinArray.
Sourcepub unsafe fn new_unchecked(
offsets: ArrayRef,
bytes: ByteBuffer,
dtype: DType,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked( offsets: ArrayRef, bytes: ByteBuffer, dtype: DType, validity: Validity, ) -> Self
Sourcepub unsafe fn new_unchecked_from_handle(
offsets: ArrayRef,
bytes: BufferHandle,
dtype: DType,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked_from_handle( offsets: ArrayRef, bytes: BufferHandle, dtype: DType, validity: Validity, ) -> Self
Creates a new VarBinArray without validation from a BufferHandle.
§Safety
Sourcepub fn try_new(
offsets: ArrayRef,
bytes: ByteBuffer,
dtype: DType,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new( offsets: ArrayRef, bytes: ByteBuffer, dtype: DType, validity: Validity, ) -> VortexResult<Self>
Constructs a new VarBinArray.
Source§impl Array<VarBinView>
impl Array<VarBinView>
Sourcepub fn from_iter<T: AsRef<[u8]>, I: IntoIterator<Item = Option<T>>>(
iter: I,
dtype: DType,
) -> Self
pub fn from_iter<T: AsRef<[u8]>, I: IntoIterator<Item = Option<T>>>( iter: I, dtype: DType, ) -> Self
Construct a VarBinViewArray from an iterator of optional byte slices.
pub fn from_iter_str<T: AsRef<str>, I: IntoIterator<Item = T>>(iter: I) -> Self
pub fn from_iter_nullable_str<T: AsRef<str>, I: IntoIterator<Item = Option<T>>>( iter: I, ) -> Self
pub fn from_iter_bin<T: AsRef<[u8]>, I: IntoIterator<Item = T>>(iter: I) -> Self
pub fn from_iter_nullable_bin<T: AsRef<[u8]>, I: IntoIterator<Item = Option<T>>>( iter: I, ) -> Self
Sourcepub fn try_new(
views: Buffer<BinaryView>,
buffers: Arc<[ByteBuffer]>,
dtype: DType,
validity: Validity,
) -> VortexResult<Self>
pub fn try_new( views: Buffer<BinaryView>, buffers: Arc<[ByteBuffer]>, dtype: DType, validity: Validity, ) -> VortexResult<Self>
Creates a new VarBinViewArray.
Sourcepub unsafe fn new_unchecked(
views: Buffer<BinaryView>,
buffers: Arc<[ByteBuffer]>,
dtype: DType,
validity: Validity,
) -> Self
pub unsafe fn new_unchecked( views: Buffer<BinaryView>, buffers: Arc<[ByteBuffer]>, dtype: DType, validity: Validity, ) -> Self
Sourcepub fn new_handle(
views: BufferHandle,
buffers: Arc<[BufferHandle]>,
dtype: DType,
validity: Validity,
) -> Self
pub fn new_handle( views: BufferHandle, buffers: Arc<[BufferHandle]>, dtype: DType, validity: Validity, ) -> Self
Creates a new VarBinViewArray with device or host memory.
Sourcepub unsafe fn new_handle_unchecked(
views: BufferHandle,
buffers: Arc<[BufferHandle]>,
dtype: DType,
validity: Validity,
) -> Self
pub unsafe fn new_handle_unchecked( views: BufferHandle, buffers: Arc<[BufferHandle]>, dtype: DType, validity: Validity, ) -> Self
Construct a new array from BufferHandles without validation.
§Safety
pub fn into_data_parts(self) -> VarBinViewDataParts
Source§impl Array<VarBinView>
impl Array<VarBinView>
Sourcepub fn compact_buffers(&self) -> VortexResult<VarBinViewArray>
pub fn compact_buffers(&self) -> VortexResult<VarBinViewArray>
Returns a compacted copy of the input array, where all wasted space has been cleaned up. This operation can be very expensive, in the worst case copying all existing string data into a new allocation.
After slicing/taking operations VarBinViewArrays can continue to hold references to buffers
that are no longer visible. We detect when there is wasted space in any of the buffers, and if
so, will aggressively compact all visible outlined string data into new buffers while keeping
well-utilized buffers unchanged.
Sourcepub fn compact_with_threshold(
&self,
buffer_utilization_threshold: f64,
) -> VortexResult<VarBinViewArray>
pub fn compact_with_threshold( &self, buffer_utilization_threshold: f64, ) -> VortexResult<VarBinViewArray>
Returns a compacted copy of the input array using selective buffer compaction.
This method analyzes each buffer’s utilization and applies one of three strategies:
- KeepFull (zero-copy): Well-utilized buffers are kept unchanged
- Slice (zero-copy): Buffers with contiguous ranges of used data are sliced to that range
- Rewrite: Poorly-utilized buffers have their data copied to new compact buffers
By preserving or slicing well-utilized buffers, compaction becomes zero-copy in many cases.
§Arguments
buffer_utilization_threshold- Threshold in range [0, 1]. Buffers with utilization below this value will be compacted. Use 0.0 for no compaction, 1.0 for aggressive compaction of any buffer with wasted space.
Source§impl Array<Variant>
impl Array<Variant>
Sourcepub fn try_new(
core_storage: ArrayRef,
shredded: Option<ArrayRef>,
) -> VortexResult<Self>
pub fn try_new( core_storage: ArrayRef, shredded: Option<ArrayRef>, ) -> VortexResult<Self>
Creates a new VariantArray with logical variant core storage and optional shredded storage.
core_storage must have DType::Variant, but it may use any Variant-typed physical
encoding. See VariantArrayExt for the higher-level storage contract.
shredded, when present, must be row-aligned with core_storage and stores typed values for
selected variant paths.
Trait Implementations§
Source§impl<V: VTable> Deref for Array<V>
impl<V: VTable> Deref for Array<V>
Source§type Target = <V as VTable>::TypedArrayData
type Target = <V as VTable>::TypedArrayData
Source§fn deref(&self) -> &V::TypedArrayData
fn deref(&self) -> &V::TypedArrayData
Source§impl DictOwnedExt for Array<Dict>
impl DictOwnedExt for Array<Dict>
fn into_parts(self) -> DictParts
Source§impl From<Array<FixedSizeList>> for GroupedArray
impl From<Array<FixedSizeList>> for GroupedArray
Source§fn from(groups: FixedSizeListArray) -> Self
fn from(groups: FixedSizeListArray) -> Self
Source§impl From<Array<ListView>> for GroupedArray
impl From<Array<ListView>> for GroupedArray
Source§fn from(groups: ListViewArray) -> Self
fn from(groups: ListViewArray) -> Self
Source§impl<'a> FromIterator<Option<&'a [u8]>> for Array<VarBinView>
impl<'a> FromIterator<Option<&'a [u8]>> for Array<VarBinView>
Source§impl<'a> FromIterator<Option<&'a str>> for Array<VarBinView>
impl<'a> FromIterator<Option<&'a str>> for Array<VarBinView>
Source§impl FromIterator<Option<String>> for Array<VarBinView>
impl FromIterator<Option<String>> for Array<VarBinView>
Source§impl FromIterator<Option<Vec<u8>>> for Array<VarBinView>
impl FromIterator<Option<Vec<u8>>> for Array<VarBinView>
Source§impl<V: VTable> IntoArray for Array<V>
impl<V: VTable> IntoArray for Array<V>
Source§fn into_array(self) -> ArrayRef
fn into_array(self) -> ArrayRef
Source§impl TryFrom<Array<Extension>> for TemporalData
impl TryFrom<Array<Extension>> for TemporalData
Source§type Error = VortexError
type Error = VortexError
Auto Trait Implementations§
impl<V> !RefUnwindSafe for Array<V>
impl<V> !UnwindSafe for Array<V>
impl<V> Freeze for Array<V>
impl<V> Send for Array<V>
impl<V> Sync for Array<V>
impl<V> Unpin for Array<V>where
V: Unpin,
impl<V> UnsafeUnpin for Array<V>
Blanket Implementations§
Source§impl<T> BoolArrayExt for Twhere
T: TypedArrayRef<Bool>,
impl<T> BoolArrayExt for Twhere
T: TypedArrayRef<Bool>,
fn nullability(&self) -> Nullability
fn validity(&self) -> Validity
fn to_bit_buffer(&self) -> BitBuffer
Source§fn bit_buffer_view(&self) -> BitBufferView<'_>
fn bit_buffer_view(&self) -> BitBufferView<'_>
BitBufferView without cloning the backing buffer.fn maybe_execute_mask( &self, ctx: &mut ExecutionCtx, ) -> VortexResult<Option<Mask>>
fn execute_mask(&self, ctx: &mut ExecutionCtx) -> Mask
fn to_mask_fill_null_false(&self, ctx: &mut ExecutionCtx) -> Mask
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> ChunkedArrayExt for Twhere
T: TypedArrayRef<Chunked>,
impl<T> ChunkedArrayExt for Twhere
T: TypedArrayRef<Chunked>,
fn chunk_offsets_array(&self) -> &ArrayRef
fn nchunks(&self) -> usize
fn chunk(&self, idx: usize) -> &ArrayRef
fn iter_chunks<'a>(&'a self) -> Box<dyn Iterator<Item = &'a ArrayRef> + 'a>
fn chunks(&self) -> Vec<ArrayRef>
fn non_empty_chunks<'a>(&'a self) -> Box<dyn Iterator<Item = &'a ArrayRef> + 'a>
fn chunk_offsets(&self) -> &[usize]
fn find_chunk_idx(&self, index: usize) -> VortexResult<(usize, usize)>
fn array_iterator(&self) -> impl ArrayIterator + '_
fn array_stream(&self) -> impl ArrayStream + '_
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DecimalArrayExt for Twhere
T: TypedArrayRef<Decimal>,
impl<T> DecimalArrayExt for Twhere
T: TypedArrayRef<Decimal>,
fn decimal_dtype(&self) -> DecimalDType
fn nullability(&self) -> Nullability
fn validity_child(&self) -> Option<&ArrayRef>
fn validity(&self) -> Validity
fn values_type(&self) -> DecimalType
fn precision(&self) -> u8
fn scale(&self) -> i8
fn buffer_handle(&self) -> &BufferHandle
fn buffer<T: NativeDecimalType>(&self) -> Buffer<T>
Source§impl<T> DictArrayExt for Twhere
T: TypedArrayRef<Dict>,
impl<T> DictArrayExt for Twhere
T: TypedArrayRef<Dict>,
fn has_all_values_referenced(&self) -> bool
fn validate_all_values_referenced(&self) -> VortexResult<()>
fn compute_referenced_values_mask( &self, referenced: bool, ) -> VortexResult<BitBuffer>
Source§impl<T> DictArraySlotsExt for Twhere
T: TypedArrayRef<Dict>,
impl<T> DictArraySlotsExt for Twhere
T: TypedArrayRef<Dict>,
Source§impl<T, A> DynAccess<T> for A
impl<T, A> DynAccess<T> for A
Source§fn load(&self) -> DynGuard<T>
fn load(&self) -> DynGuard<T>
Access::load.Source§impl<T> ExtensionArrayExt for Twhere
T: TypedArrayRef<Extension>,
impl<T> ExtensionArrayExt for Twhere
T: TypedArrayRef<Extension>,
fn ext_dtype(&self) -> &ExtDTypeRef
fn storage_array(&self) -> &ArrayRef
Source§impl<T> FilterArrayExt for Twhere
T: TypedArrayRef<Filter>,
impl<T> FilterArrayExt for Twhere
T: TypedArrayRef<Filter>,
Source§impl<T> FixedSizeListArrayExt for Twhere
T: TypedArrayRef<FixedSizeList>,
impl<T> FixedSizeListArrayExt for Twhere
T: TypedArrayRef<FixedSizeList>,
fn dtype_parts(&self) -> (&DType, u32, Nullability)
fn elements(&self) -> &ArrayRef
fn list_size(&self) -> u32
fn fixed_size_list_validity(&self) -> Validity
fn fixed_size_list_elements_at(&self, index: usize) -> VortexResult<ArrayRef>
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> InterleaveArrayExt for Twhere
T: TypedArrayRef<Interleave>,
impl<T> InterleaveArrayExt for Twhere
T: TypedArrayRef<Interleave>,
Source§fn num_values(&self) -> usize
fn num_values(&self) -> usize
Source§fn value(&self, idx: usize) -> &ArrayRef
fn value(&self, idx: usize) -> &ArrayRef
idx-th value array (holding the rows that array_indices routes to it).Source§fn array_indices(&self) -> &ArrayRef
fn array_indices(&self) -> &ArrayRef
Source§fn row_indices(&self) -> &ArrayRef
fn row_indices(&self) -> &ArrayRef
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> ListArrayExt for Twhere
T: TypedArrayRef<List>,
impl<T> ListArrayExt for Twhere
T: TypedArrayRef<List>,
fn nullability(&self) -> Nullability
fn elements(&self) -> &ArrayRef
fn offsets(&self) -> &ArrayRef
fn list_validity(&self) -> Validity
fn offset_at(&self, index: usize) -> VortexResult<usize>
fn list_elements_at(&self, index: usize) -> VortexResult<ArrayRef>
fn sliced_elements(&self) -> VortexResult<ArrayRef>
fn element_dtype(&self) -> &DType
fn reset_offsets( &self, recurse: bool, ctx: &mut ExecutionCtx, ) -> VortexResult<Array<List>>
Source§impl<T> ListViewArrayExt for Twhere
T: TypedArrayRef<ListView>,
impl<T> ListViewArrayExt for Twhere
T: TypedArrayRef<ListView>,
fn nullability(&self) -> Nullability
fn elements(&self) -> &ArrayRef
fn offsets(&self) -> &ArrayRef
fn sizes(&self) -> &ArrayRef
fn listview_validity(&self) -> Validity
fn offset_at(&self, index: usize) -> usize
fn size_at(&self, index: usize) -> usize
fn list_elements_at(&self, index: usize) -> VortexResult<ArrayRef>
fn verify_is_zero_copy_to_list(&self) -> bool
Source§fn compute_referenced_elements_mask(
&self,
ctx: &mut ExecutionCtx,
) -> VortexResult<Mask>
fn compute_referenced_elements_mask( &self, ctx: &mut ExecutionCtx, ) -> VortexResult<Mask>
Source§fn compute_density(&self, ctx: &mut ExecutionCtx) -> VortexResult<f32>
fn compute_density(&self, ctx: &mut ExecutionCtx) -> VortexResult<f32>
Source§fn upper_bound_density(&self, ctx: &mut ExecutionCtx) -> VortexResult<f32>
fn upper_bound_density(&self, ctx: &mut ExecutionCtx) -> VortexResult<f32>
compute_density via
sum(sizes) / elements.len(), clamped to [0.0, 1.0]. Read moreSource§fn referenced_element_bounds(
&self,
ctx: &mut ExecutionCtx,
) -> VortexResult<(usize, usize)>
fn referenced_element_bounds( &self, ctx: &mut ExecutionCtx, ) -> VortexResult<(usize, usize)>
[start, end) of elements indices referenced by any view:
the minimum offset and the maximum offset + size. Elements outside this range are
unreferenced leading or trailing slack that a
TrimElements rebuild would reclaim. Read moreSource§impl<T> MaskedArrayExt for Twhere
T: TypedArrayRef<Masked>,
impl<T> MaskedArrayExt for Twhere
T: TypedArrayRef<Masked>,
fn masked_validity(&self) -> Validity
Source§impl<T> MaskedArraySlotsExt for Twhere
T: TypedArrayRef<Masked>,
impl<T> MaskedArraySlotsExt for Twhere
T: TypedArrayRef<Masked>,
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);Source§impl<T> PatchedArrayExt for Twhere
T: TypedArrayRef<Patched>,
impl<T> PatchedArrayExt for Twhere
T: TypedArrayRef<Patched>,
Source§impl<T> PatchedArraySlotsExt for Twhere
T: TypedArrayRef<Patched>,
impl<T> PatchedArraySlotsExt for Twhere
T: TypedArrayRef<Patched>,
fn inner(&self) -> &ArrayRef
fn lane_offsets(&self) -> &ArrayRef
fn patch_indices(&self) -> &ArrayRef
fn patch_values(&self) -> &ArrayRef
Source§fn slots_view(&self) -> PatchedSlotsView<'_>
fn slots_view(&self) -> PatchedSlotsView<'_>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PrimitiveArrayExt for Twhere
T: TypedArrayRef<Primitive>,
impl<T> PrimitiveArrayExt for Twhere
T: TypedArrayRef<Primitive>,
fn ptype(&self) -> PType
fn nullability(&self) -> Nullability
fn validity_child(&self) -> Option<&ArrayRef>
fn validity(&self) -> Validity
fn buffer_handle(&self) -> &BufferHandle
fn reinterpret_cast(&self, ptype: PType) -> PrimitiveArray
Source§fn narrow(&self, ctx: &mut ExecutionCtx) -> VortexResult<PrimitiveArray>
fn narrow(&self, ctx: &mut ExecutionCtx) -> VortexResult<PrimitiveArray>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ScalarFnArrayExt for Twhere
T: TypedArrayRef<ScalarFn>,
impl<T> ScalarFnArrayExt for Twhere
T: TypedArrayRef<ScalarFn>,
fn scalar_fn(&self) -> &ScalarFnRef
fn child_at(&self, idx: usize) -> &ArrayRef
fn child_count(&self) -> usize
fn nchildren(&self) -> usize
fn get_child(&self, idx: usize) -> &ArrayRef
fn iter_children(&self) -> impl Iterator<Item = &ArrayRef> + '_
fn children(&self) -> Vec<ArrayRef>
fn source(&self) -> &ArrayRef
fn current_array_ref(&self) -> &ArrayRef
fn get_or_compute( &self, f: impl FnOnce(&ArrayRef) -> VortexResult<Canonical>, ) -> VortexResult<ArrayRef>
async fn get_or_compute_async<F, Fut>(&self, f: F) -> VortexResult<ArrayRef>
Source§impl<T> SliceArrayExt for Twhere
T: TypedArrayRef<Slice>,
impl<T> SliceArrayExt for Twhere
T: TypedArrayRef<Slice>,
Source§impl<T> StructArrayExt for Twhere
T: TypedArrayRef<Struct>,
impl<T> StructArrayExt for Twhere
T: TypedArrayRef<Struct>,
fn nullability(&self) -> Nullability
fn names(&self) -> &FieldNames
fn struct_validity(&self) -> Validity
fn iter_unmasked_fields(&self) -> impl Iterator<Item = &ArrayRef> + '_
fn unmasked_fields(&self) -> Arc<[ArrayRef]> ⓘ
fn unmasked_field(&self, idx: usize) -> &ArrayRef
fn unmasked_field_by_name_opt(&self, name: impl AsRef<str>) -> Option<&ArrayRef>
fn unmasked_field_by_name( &self, name: impl AsRef<str>, ) -> VortexResult<&ArrayRef>
fn struct_fields(&self) -> &StructFields
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.