Struct Pack

Source
pub struct Pack { /* private fields */ }
Expand description

Pack zero or more expressions into a structure with named fields.

§Examples

use vortex_array::{IntoArray, ToCanonical};
use vortex_buffer::buffer;
use vortex_expr::{root, Pack, Scope, VortexExpr};
use vortex_scalar::Scalar;
use vortex_dtype::Nullability;

let example = Pack::try_new_expr(
    ["x", "x copy", "second x copy"].into(),
    vec![root(), root(), root()],
    Nullability::NonNullable,
).unwrap();
let packed = example.evaluate(&Scope::new(buffer![100, 110, 200].into_array())).unwrap();
let x_copy = packed
    .to_struct()
    .unwrap()
    .field_by_name("x copy")
    .unwrap()
    .clone();
assert_eq!(x_copy.scalar_at(0).unwrap(), Scalar::from(100));
assert_eq!(x_copy.scalar_at(1).unwrap(), Scalar::from(110));
assert_eq!(x_copy.scalar_at(2).unwrap(), Scalar::from(200));

Implementations§

Source§

impl Pack

Source

pub fn try_new_expr( names: FieldNames, values: Vec<ExprRef>, nullability: Nullability, ) -> VortexResult<ExprRef>

Source

pub fn names(&self) -> &FieldNames

Source

pub fn field(&self, field_name: &FieldName) -> VortexResult<ExprRef>

Source

pub fn nullability(&self) -> Nullability

Trait Implementations§

Source§

impl AnalysisExpr for Pack

Source§

fn stat_falsification(&self, _catalog: &mut dyn StatsCatalog) -> Option<ExprRef>

An expression over zone-statistics which implies all records in the zone evaluate to false. Read more
Source§

fn max(&self, _catalog: &mut dyn StatsCatalog) -> Option<ExprRef>

An expression for the upper non-null bound of this expression, if available. Read more
Source§

fn min(&self, _catalog: &mut dyn StatsCatalog) -> Option<ExprRef>

An expression for the lower non-null bound of this expression, if available. Read more
Source§

fn field_path(&self) -> Option<AccessPath>

Source§

impl Clone for Pack

Source§

fn clone(&self) -> Pack

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Pack

Source§

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

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

impl Display for Pack

Source§

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

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

impl Hash for Pack

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Pack

Source§

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

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

const 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 VortexExpr for Pack

Source§

fn as_any(&self) -> &dyn Any

Convert expression reference to reference of Any type
Source§

fn unchecked_evaluate(&self, scope: &Scope) -> VortexResult<ArrayRef>

Compute result of expression on given batch producing a new batch Read more
Source§

fn children(&self) -> Vec<&ExprRef>

Source§

fn replacing_children(self: Arc<Self>, children: Vec<ExprRef>) -> ExprRef

Source§

fn return_dtype(&self, scope: &ScopeDType) -> VortexResult<DType>

Compute the type of the array returned by VortexExpr::evaluate.
Source§

fn evaluate(&self, scope: &Scope) -> VortexResult<ArrayRef>

Compute result of expression on given batch producing a new batch
Source§

impl Eq for Pack

Source§

impl StructuralPartialEq for Pack

Auto Trait Implementations§

§

impl Freeze for Pack

§

impl !RefUnwindSafe for Pack

§

impl Send for Pack

§

impl Sync for Pack

§

impl Unpin for Pack

§

impl !UnwindSafe for Pack

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> DynEq for T
where T: Eq + Any,

Source§

fn dyn_eq(&self, other: &(dyn Any + 'static)) -> bool

Source§

impl<T> DynHash for T
where T: Hash + ?Sized,

Source§

fn dyn_hash(&self, state: &mut dyn Hasher)

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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, 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<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> ExprSerializable for T