Skip to main content

Layout

Struct Layout 

Source
pub struct Layout<V: VTable> { /* private fields */ }
Expand description

A typed layout node.

Implementations§

Source§

impl Layout<Chunked>

Source

pub fn new( row_count: u64, dtype: DType, children: Arc<dyn LayoutChildren>, ) -> Self

Construct a chunked layout.

Source

pub fn with_children(&self, children: Vec<LayoutRef>) -> Self

Rebuild this layout with owned children.

Source§

impl Layout<Dict>

Source

pub fn has_all_values_referenced(&self) -> bool

Returns whether every dictionary value is known to be referenced.

Source§

impl Layout<Flat>

Source

pub fn new( row_count: u64, dtype: DType, segment_id: SegmentId, ctx: ReadContext, ) -> Self

Construct a flat layout without an inline array encoding tree.

Source

pub fn new_with_metadata( row_count: u64, dtype: DType, segment_id: SegmentId, ctx: ReadContext, array_tree: Option<ByteBuffer>, ) -> Self

Construct a flat layout with optional inline array metadata.

Source

pub fn segment_id(&self) -> SegmentId

Returns the serialized array segment ID.

Source

pub fn array_ctx(&self) -> &ReadContext

Returns the array read context.

Source

pub fn array_tree(&self) -> Option<&ByteBuffer>

Returns the optional inline array encoding tree.

Source§

impl Layout<List>

Source

pub fn new( dtype: DType, elements: LayoutRef, offsets: LayoutRef, validity: Option<LayoutRef>, ) -> Self

Construct a list layout from its children.

Source

pub fn elements(&self) -> VortexResult<LayoutRef>

Returns the elements child.

Source

pub fn offsets(&self) -> VortexResult<LayoutRef>

Returns the offsets child.

Source

pub fn validity(&self) -> VortexResult<Option<LayoutRef>>

Returns the optional validity child.

Source

pub fn offsets_ptype(&self) -> PType

Returns the integer ptype used by offsets.

Source

pub fn elements_dtype(&self) -> &DType

Returns the list element dtype.

Source§

impl Layout<Struct>

Source

pub fn new(row_count: u64, dtype: DType, children: Vec<LayoutRef>) -> Self

Construct a struct layout from owned children.

Source

pub fn struct_fields(&self) -> &StructFields

Returns the struct fields.

Source

pub fn matching_fields<F>( &self, field_mask: &[FieldMask], per_child: F, ) -> VortexResult<()>

Invokes per_child for fields selected by field_mask.

Source§

impl Layout<LegacyStats>

Source

pub fn nzones(&self) -> usize

Source

pub fn present_aggregates(&self) -> Arc<[String]>

Returns display names for the zone-map aggregates stored by this layout.

Source§

impl Layout<Zoned>

Source

pub fn try_new( data: LayoutRef, zones: LayoutRef, zone_len: NonZeroUsize, aggregate_fns: Arc<[AggregateFnRef]>, ) -> VortexResult<Self>

Create a zoned layout from a data child, a zone-map child, a zone length, and the aggregate functions stored in the zone map.

Source

pub fn zone_len(&self) -> usize

Source

pub fn present_aggregates(&self) -> Arc<[String]>

Returns display names for the zone-map aggregates stored by this layout.

Source

pub fn nzones(&self) -> usize

Source§

impl<V: VTable> Layout<V>

Source

pub fn from_parts(parts: LayoutParts<V>) -> Self

Construct a layout from explicit parts.

Source

pub fn vtable(&self) -> &V

Returns the vtable.

Source

pub fn data(&self) -> &V::LayoutData

Returns layout-specific data.

Source

pub fn dtype(&self) -> &DType

Returns the logical dtype.

Source

pub fn row_count(&self) -> u64

Returns the number of rows.

Source

pub fn segment_ids(&self) -> &[SegmentId]

Returns directly referenced segment IDs.

Source

pub fn children(&self) -> &Arc<dyn LayoutChildren>

Returns the child adapter.

Source

pub fn nchildren(&self) -> usize

Returns the number of serialized (present) children.

Source

pub fn nslots(&self) -> usize

Returns the number of logical child slots, including any that are absent.

Source

pub fn slot_to_child(&self, slot: usize) -> Option<usize>

Maps a logical slot to the index of its serialized child, or None if absent.

Source

pub fn slot(&self, slot: usize) -> VortexResult<Option<LayoutRef>>

Materialize the child in logical slot, or None if the slot is absent.

Source

pub fn slot_type(&self, slot: usize) -> Option<LayoutChildType>

Returns the relationship of the child in logical slot to this layout, or None if the slot is absent.

Source

pub fn child_row_count(&self, idx: usize) -> u64

Returns a child’s serialized row count without materializing it.

Source

pub fn to_layout(&self) -> LayoutRef

Erase this typed layout into a shared layout reference.

Source

pub fn into_layout(self) -> LayoutRef

Erase this typed layout into a shared layout reference.

Source

pub fn new_reader( &self, name: Arc<str>, segment_source: Arc<dyn SegmentSource>, session: &VortexSession, ctx: &LayoutReaderContext, ) -> VortexResult<LayoutReaderRef>

Construct a reader for this layout.

Trait Implementations§

Source§

impl<V: VTable> Clone for Layout<V>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<V: VTable> Debug for Layout<V>

Source§

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

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

impl<V: VTable> Deref for Layout<V>

Source§

type Target = <V as VTable>::LayoutData

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<V: VTable> DynLayout for Layout<V>

Source§

fn as_any(&self) -> &dyn Any

Returns this layout as Any for downcasting.
Source§

fn dyn_to_layout(&self) -> LayoutRef

Clone this layout as an erased reference.
Source§

fn dyn_encoding_id(&self) -> LayoutId

Returns the layout ID.
Source§

fn dyn_row_count(&self) -> u64

Returns the row count.
Source§

fn dyn_dtype(&self) -> &DType

Returns the logical dtype.
Source§

fn dyn_nchildren(&self) -> usize

Returns the number of serialized (present) children.
Source§

fn dyn_nslots(&self) -> usize

Returns the number of logical child slots, including any that are absent.
Source§

fn dyn_slot(&self, slot: usize) -> VortexResult<Option<LayoutRef>>

Materializes the child in logical slot, or None if the slot is absent.
Source§

fn dyn_slot_type(&self, slot: usize) -> Option<LayoutChildType>

Returns the relationship of the child in logical slot, or None if the slot is absent.
Source§

fn dyn_metadata(&self) -> Vec<u8>

Serializes layout-specific metadata.
Source§

fn dyn_segment_ids(&self) -> Vec<SegmentId>

Returns directly referenced segment IDs.
Source§

fn dyn_new_reader( &self, name: Arc<str>, segment_source: Arc<dyn SegmentSource>, session: &VortexSession, ctx: &LayoutReaderContext, ) -> VortexResult<LayoutReaderRef>

Constructs a reader.
Source§

fn dyn_is_indivisible(&self) -> bool

Returns true if this layout is indivisible: its readers never register natural split boundaries strictly inside their row range (see crate::VTable::is_indivisible).
Source§

impl<V: VTable> From<Layout<V>> for LayoutRef

Source§

fn from(value: Layout<V>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<V> !RefUnwindSafe for Layout<V>

§

impl<V> !UnwindSafe for Layout<V>

§

impl<V> Freeze for Layout<V>

§

impl<V> Send for Layout<V>

§

impl<V> Sync for Layout<V>

§

impl<V> Unpin for Layout<V>

§

impl<V> UnsafeUnpin for Layout<V>

Blanket Implementations§

Source§

impl<T, A, P> Access<T> for P
where A: Access<T> + ?Sized, P: Deref<Target = A>,

Source§

type Guard = <A as Access<T>>::Guard

A guard object containing the value and keeping it alive. Read more
Source§

fn load(&self) -> <P as Access<T>>::Guard

The loading method. Read more
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T, A> DynAccess<T> for A
where A: Access<T>, <A as Access<T>>::Guard: 'static,

Source§

fn load(&self) -> DynGuard<T>

The equivalent of Access::load.
Source§

impl<K, V, T> Expiry<K, V> for T
where T: Deref<Target = dyn Expiry<K, V> + Send + Sync>,

Source§

fn expire_after_create( &self, key: &K, value: &V, created_at: Instant, ) -> Option<Duration>

Specifies that the entry should be automatically removed from the cache once the duration has elapsed after the entry’s creation. This method is called for cache write methods such as insert and get_with but only when the key was not present in the cache. Read more
Source§

fn expire_after_read( &self, key: &K, value: &V, read_at: Instant, duration_until_expiry: Option<Duration>, last_modified_at: Instant, ) -> Option<Duration>

Specifies that the entry should be automatically removed from the cache once the duration has elapsed after its last read. This method is called for cache read methods such as get and get_with but only when the key is present in the cache. Read more
Source§

fn expire_after_update( &self, key: &K, value: &V, updated_at: Instant, duration_until_expiry: Option<Duration>, ) -> Option<Duration>

Specifies that the entry should be automatically removed from the cache once the duration has elapsed after the replacement of its value. This method is called for cache write methods such as insert but only when the key is already present in the cache. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
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> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .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
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .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
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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> 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