pub struct RunEndArray { /* private fields */ }Implementations§
Source§impl RunEndArray
impl RunEndArray
pub fn try_new(ends: ArrayRef, values: ArrayRef) -> VortexResult<Self>
Sourcepub fn find_physical_index(&self, index: usize) -> VortexResult<usize>
pub fn find_physical_index(&self, index: usize) -> VortexResult<usize>
Convert the given logical index to an index into the values array
Sourcepub fn find_physical_indices(
&self,
indices: &[usize],
) -> VortexResult<Buffer<u64>>
pub fn find_physical_indices( &self, indices: &[usize], ) -> VortexResult<Buffer<u64>>
Convert a batch of logical indices into an index for the values. Expects indices to be adjusted by offset unlike Self::find_physical_index
See: find_physical_index.
Sourcepub fn encode(array: ArrayRef) -> VortexResult<Self>
pub fn encode(array: ArrayRef) -> VortexResult<Self>
Run the array through run-end encoding.
Sourcepub fn offset(&self) -> usize
pub fn offset(&self) -> usize
The offset that the ends is relative to.
This is generally zero for a “new” array, and non-zero after a slicing operation.
Trait Implementations§
Source§impl ArrayCanonicalImpl for RunEndArray
impl ArrayCanonicalImpl for RunEndArray
Source§fn _to_canonical(&self) -> VortexResult<Canonical>
fn _to_canonical(&self) -> VortexResult<Canonical>
Source§fn _append_to_builder(
&self,
builder: &mut dyn ArrayBuilder,
) -> Result<(), VortexError>
fn _append_to_builder( &self, builder: &mut dyn ArrayBuilder, ) -> Result<(), VortexError>
Source§impl ArrayComputeImpl for RunEndArray
impl ArrayComputeImpl for RunEndArray
Source§impl ArrayImpl for RunEndArray
impl ArrayImpl for RunEndArray
Source§impl ArrayStatisticsImpl for RunEndArray
impl ArrayStatisticsImpl for RunEndArray
fn _stats_ref(&self) -> StatsSetRef<'_>
Source§impl ArrayValidityImpl for RunEndArray
impl ArrayValidityImpl for RunEndArray
Source§fn _is_valid(&self, index: usize) -> VortexResult<bool>
fn _is_valid(&self, index: usize) -> VortexResult<bool>
index item is valid. Read moreSource§fn _all_valid(&self) -> VortexResult<bool>
fn _all_valid(&self) -> VortexResult<bool>
Source§fn _all_invalid(&self) -> VortexResult<bool>
fn _all_invalid(&self) -> VortexResult<bool>
Source§fn _validity_mask(&self) -> VortexResult<Mask>
fn _validity_mask(&self) -> VortexResult<Mask>
Source§fn _valid_count(&self) -> Result<usize, VortexError>
fn _valid_count(&self) -> Result<usize, VortexError>
Source§fn _invalid_count(&self) -> Result<usize, VortexError>
fn _invalid_count(&self) -> Result<usize, VortexError>
Source§impl ArrayVariantsImpl for RunEndArray
impl ArrayVariantsImpl for RunEndArray
Source§fn _as_bool_typed(&self) -> Option<&dyn BoolArrayTrait>
fn _as_bool_typed(&self) -> Option<&dyn BoolArrayTrait>
Source§fn _as_primitive_typed(&self) -> Option<&dyn PrimitiveArrayTrait>
fn _as_primitive_typed(&self) -> Option<&dyn PrimitiveArrayTrait>
Source§fn _as_null_typed(&self) -> Option<&dyn NullArrayTrait>
fn _as_null_typed(&self) -> Option<&dyn NullArrayTrait>
Source§fn _as_utf8_typed(&self) -> Option<&dyn Utf8ArrayTrait>
fn _as_utf8_typed(&self) -> Option<&dyn Utf8ArrayTrait>
Source§fn _as_binary_typed(&self) -> Option<&dyn BinaryArrayTrait>
fn _as_binary_typed(&self) -> Option<&dyn BinaryArrayTrait>
Source§fn _as_struct_typed(&self) -> Option<&dyn StructArrayTrait>
fn _as_struct_typed(&self) -> Option<&dyn StructArrayTrait>
Source§fn _as_list_typed(&self) -> Option<&dyn ListArrayTrait>
fn _as_list_typed(&self) -> Option<&dyn ListArrayTrait>
Source§fn _as_extension_typed(&self) -> Option<&dyn ExtensionArrayTrait>
fn _as_extension_typed(&self) -> Option<&dyn ExtensionArrayTrait>
Source§impl ArrayVisitorImpl<SerdeMetadata<RunEndMetadata>> for RunEndArray
impl ArrayVisitorImpl<SerdeMetadata<RunEndMetadata>> for RunEndArray
fn _visit_children(&self, visitor: &mut dyn ArrayChildVisitor)
fn _metadata(&self) -> SerdeMetadata<RunEndMetadata>
fn _visit_buffers(&self, _visitor: &mut dyn ArrayBufferVisitor)
fn _nbuffers(&self) -> usize
fn _nchildren(&self) -> usize
Source§impl BinaryNumericFn<&RunEndArray> for RunEndEncoding
impl BinaryNumericFn<&RunEndArray> for RunEndEncoding
fn binary_numeric( &self, array: &RunEndArray, rhs: &dyn Array, op: BinaryNumericOperator, ) -> VortexResult<Option<ArrayRef>>
Source§impl Clone for RunEndArray
impl Clone for RunEndArray
Source§fn clone(&self) -> RunEndArray
fn clone(&self) -> RunEndArray
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl CompareFn<&RunEndArray> for RunEndEncoding
impl CompareFn<&RunEndArray> for RunEndEncoding
Source§fn compare(
&self,
lhs: &RunEndArray,
rhs: &dyn Array,
operator: Operator,
) -> VortexResult<Option<ArrayRef>>
fn compare( &self, lhs: &RunEndArray, rhs: &dyn Array, operator: Operator, ) -> VortexResult<Option<ArrayRef>>
Source§impl Debug for RunEndArray
impl Debug for RunEndArray
Source§impl FillNullFn<&RunEndArray> for RunEndEncoding
impl FillNullFn<&RunEndArray> for RunEndEncoding
fn fill_null( &self, array: &RunEndArray, fill_value: Scalar, ) -> VortexResult<ArrayRef>
Source§impl InvertFn<&RunEndArray> for RunEndEncoding
impl InvertFn<&RunEndArray> for RunEndEncoding
Source§fn invert(&self, array: &RunEndArray) -> VortexResult<ArrayRef>
fn invert(&self, array: &RunEndArray) -> VortexResult<ArrayRef>
Source§impl IsSortedFn<&RunEndArray> for RunEndEncoding
impl IsSortedFn<&RunEndArray> for RunEndEncoding
Source§fn is_sorted(&self, array: &RunEndArray) -> VortexResult<bool>
fn is_sorted(&self, array: &RunEndArray) -> VortexResult<bool>
fn is_strict_sorted(&self, array: &RunEndArray) -> VortexResult<bool>
Source§impl MinMaxFn<&RunEndArray> for RunEndEncoding
impl MinMaxFn<&RunEndArray> for RunEndEncoding
fn min_max(&self, array: &RunEndArray) -> VortexResult<Option<MinMaxResult>>
Source§impl PrimitiveArrayTrait for RunEndArray
impl PrimitiveArrayTrait for RunEndArray
Source§impl ScalarAtFn<&RunEndArray> for RunEndEncoding
impl ScalarAtFn<&RunEndArray> for RunEndEncoding
fn scalar_at(&self, array: &RunEndArray, index: usize) -> VortexResult<Scalar>
Source§impl SliceFn<&RunEndArray> for RunEndEncoding
impl SliceFn<&RunEndArray> for RunEndEncoding
Source§fn slice(
&self,
array: &RunEndArray,
start: usize,
stop: usize,
) -> VortexResult<ArrayRef>
fn slice( &self, array: &RunEndArray, start: usize, stop: usize, ) -> VortexResult<ArrayRef>
start (inclusive) and end (exclusive).
If start >= stop, returns an empty array of the same type as self.
Assumes that start or stop are out of bounds, may panic otherwise.Source§impl TakeFn<&RunEndArray> for RunEndEncoding
impl TakeFn<&RunEndArray> for RunEndEncoding
Source§fn take(
&self,
array: &RunEndArray,
indices: &dyn Array,
) -> VortexResult<ArrayRef>
fn take( &self, array: &RunEndArray, indices: &dyn Array, ) -> VortexResult<ArrayRef>
Source§fn take_into(
&self,
array: A,
indices: &dyn Array,
builder: &mut dyn ArrayBuilder,
) -> Result<(), VortexError>
fn take_into( &self, array: A, indices: &dyn Array, builder: &mut dyn ArrayBuilder, ) -> Result<(), VortexError>
Self::take but materializes the result into the provided
builder.Source§impl TakeFromFn<&RunEndArray> for RunEndEncoding
impl TakeFromFn<&RunEndArray> for RunEndEncoding
Source§fn take_from(
&self,
indices: &RunEndArray,
source: &dyn Array,
) -> VortexResult<Option<ArrayRef>>
fn take_from( &self, indices: &RunEndArray, source: &dyn Array, ) -> VortexResult<Option<ArrayRef>>
impl BoolArrayTrait for RunEndArray
Auto Trait Implementations§
impl Freeze for RunEndArray
impl !RefUnwindSafe for RunEndArray
impl Send for RunEndArray
impl Sync for RunEndArray
impl Unpin for RunEndArray
impl !UnwindSafe for RunEndArray
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<A> Array for Awhere
A: ArrayImpl + 'static,
impl<A> Array for Awhere
A: ArrayImpl + 'static,
Source§fn is_valid(&self, index: usize) -> Result<bool, VortexError>
fn is_valid(&self, index: usize) -> Result<bool, VortexError>
Returns whether the item at index is valid.
Source§fn is_invalid(&self, index: usize) -> Result<bool, VortexError>
fn is_invalid(&self, index: usize) -> Result<bool, VortexError>
Returns whether the item at index is invalid.
Source§fn all_valid(&self) -> Result<bool, VortexError>
fn all_valid(&self) -> Result<bool, VortexError>
Returns whether all items in the array are valid.
This is usually cheaper than computing a precise valid_count.
Source§fn all_invalid(&self) -> Result<bool, VortexError>
fn all_invalid(&self) -> Result<bool, VortexError>
Returns whether the array is all invalid.
This is usually cheaper than computing a precise invalid_count.
Source§fn valid_count(&self) -> Result<usize, VortexError>
fn valid_count(&self) -> Result<usize, VortexError>
Returns the number of valid elements in the array.
Source§fn invalid_count(&self) -> Result<usize, VortexError>
fn invalid_count(&self) -> Result<usize, VortexError>
Returns the number of invalid elements in the array.
Source§fn validity_mask(&self) -> Result<Mask, VortexError>
fn validity_mask(&self) -> Result<Mask, VortexError>
Returns the canonical validity mask for the array.
Source§fn to_canonical(&self) -> Result<Canonical, VortexError>
fn to_canonical(&self) -> Result<Canonical, VortexError>
Returns the canonical representation of the array.
Source§fn append_to_builder(
&self,
builder: &mut dyn ArrayBuilder,
) -> Result<(), VortexError>
fn append_to_builder( &self, builder: &mut dyn ArrayBuilder, ) -> Result<(), VortexError>
Writes the array into the canonical builder.
The DType of the builder must match that of the array.
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Any trait object.Source§fn vtable(&self) -> ArcRef<dyn EncodingVTable>
fn vtable(&self) -> ArcRef<dyn EncodingVTable>
Source§fn find_kernel(&self, compute_fn: &dyn ComputeFn) -> Option<ArcRef<dyn Kernel>>
fn find_kernel(&self, compute_fn: &dyn ComputeFn) -> Option<ArcRef<dyn Kernel>>
Source§fn statistics(&self) -> StatsSetRef<'_>
fn statistics(&self) -> StatsSetRef<'_>
Source§fn with_children(
&self,
children: &[Arc<dyn Array>],
) -> Result<Arc<dyn Array>, VortexError>
fn with_children( &self, children: &[Arc<dyn Array>], ) -> Result<Arc<dyn Array>, VortexError>
Source§fn is_encoding(&self, encoding: ArcRef<str>) -> bool
fn is_encoding(&self, encoding: ArcRef<str>) -> bool
Source§fn is_canonical(&self) -> bool
fn is_canonical(&self) -> bool
Source§impl<A> ArrayIteratorArrayExt for A
impl<A> ArrayIteratorArrayExt for A
Source§fn to_array_iterator(&self) -> impl ArrayIterator + 'static
fn to_array_iterator(&self) -> impl ArrayIterator + 'static
ArrayIterator over the array.Source§impl<A> ArrayStatistics for Awhere
A: Array + 'static,
impl<A> ArrayStatistics for Awhere
A: Array + 'static,
Source§fn is_constant(&self) -> bool
fn is_constant(&self) -> bool
Source§fn as_constant(&self) -> Option<Scalar>
fn as_constant(&self) -> Option<Scalar>
Self::is_constant is true, return the actual constant value as a Scalar.Source§impl<A> ArrayStreamArrayExt for A
impl<A> ArrayStreamArrayExt for A
Source§fn to_array_stream(&self) -> impl ArrayStream + 'static
fn to_array_stream(&self) -> impl ArrayStream + 'static
ArrayStream over the array.Source§impl<A> ArrayVariants for Awhere
A: ArrayImpl,
impl<A> ArrayVariants for Awhere
A: ArrayImpl,
Source§fn as_null_typed(&self) -> Option<&dyn NullArrayTrait>
fn as_null_typed(&self) -> Option<&dyn NullArrayTrait>
Downcasts the array for null-specific behavior.
Source§fn as_bool_typed(&self) -> Option<&dyn BoolArrayTrait>
fn as_bool_typed(&self) -> Option<&dyn BoolArrayTrait>
Downcasts the array for bool-specific behavior.
Source§fn as_primitive_typed(&self) -> Option<&dyn PrimitiveArrayTrait>
fn as_primitive_typed(&self) -> Option<&dyn PrimitiveArrayTrait>
Downcasts the array for primitive-specific behavior.
Source§fn as_utf8_typed(&self) -> Option<&dyn Utf8ArrayTrait>
fn as_utf8_typed(&self) -> Option<&dyn Utf8ArrayTrait>
Downcasts the array for utf8-specific behavior.
Source§fn as_binary_typed(&self) -> Option<&dyn BinaryArrayTrait>
fn as_binary_typed(&self) -> Option<&dyn BinaryArrayTrait>
Downcasts the array for binary-specific behavior.
Source§fn as_struct_typed(&self) -> Option<&dyn StructArrayTrait>
fn as_struct_typed(&self) -> Option<&dyn StructArrayTrait>
Downcasts the array for struct-specific behavior.
Source§fn as_list_typed(&self) -> Option<&dyn ListArrayTrait>
fn as_list_typed(&self) -> Option<&dyn ListArrayTrait>
Downcasts the array for list-specific behavior.
Source§fn as_extension_typed(&self) -> Option<&dyn ExtensionArrayTrait>
fn as_extension_typed(&self) -> Option<&dyn ExtensionArrayTrait>
Downcasts the array for extension-specific behavior.
Source§impl<A> ArrayVisitor for Awhere
A: ArrayImpl,
impl<A> ArrayVisitor for Awhere
A: ArrayImpl,
Source§impl<A> ArrayVisitorExt for A
impl<A> ArrayVisitorExt for A
Source§fn nbuffers_recursive(&self) -> usize
fn nbuffers_recursive(&self) -> usize
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.