Layout

Struct Layout 

Source
pub struct Layout<'a> {
    pub _tab: Table<'a>,
}
Expand description

A Layout is a recursive data structure describing the physical layout of Vortex arrays in random access storage. As a starting, concrete example, the first three Layout encodings are defined as:

  1. encoding == 1, Flat -> one buffer, zero child Layouts
  2. encoding == 2, Chunked -> zero buffers, one or more child Layouts (used for chunks of rows)
  3. encoding == 3, Columnar -> zero buffers, one or more child Layouts (used for columns of structs)

The row_count represents the number of rows represented by this Layout. This is very useful for pruning the Layout tree based on row filters.

The metadata field is fully opaque at this layer, and allows the Layout implementation corresponding to encoding to embed additional information that may be useful for the reader. For example, the ChunkedLayout uses the first byte of the metadata array as a boolean to indicate whether the first child Layout represents the statistics table for the other chunks.

Fields§

§_tab: Table<'a>

Implementations§

Source§

impl<'a> Layout<'a>

Source

pub const VT_ENCODING: VOffsetT = 4u16

Source

pub const VT_ROW_COUNT: VOffsetT = 6u16

Source

pub const VT_METADATA: VOffsetT = 8u16

Source

pub const VT_CHILDREN: VOffsetT = 10u16

Source

pub const VT_SEGMENTS: VOffsetT = 12u16

Source

pub unsafe fn init_from_table(table: Table<'a>) -> Self

Source

pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: Allocator + 'bldr>( _fbb: &'mut_bldr mut FlatBufferBuilder<'bldr, A>, args: &'args LayoutArgs<'args>, ) -> WIPOffset<Layout<'bldr>>

Source

pub fn encoding(&self) -> u16

The ID of the encoding used for this Layout.

Source

pub fn row_count(&self) -> u64

The number of rows of data represented by this Layout.

Source

pub fn metadata(&self) -> Option<Vector<'a, u8>>

Any additional metadata this layout needs to interpret its children. This does not include data-specific metadata, which the layout should store in a segment.

Source

pub fn children(&self) -> Option<Vector<'a, ForwardsUOffset<Layout<'a>>>>

The children of this Layout.

Source

pub fn segments(&self) -> Option<Vector<'a, u32>>

Identifiers for each SegmentSpec of data required by this layout.

Trait Implementations§

Source§

impl<'a> Clone for Layout<'a>

Source§

fn clone(&self) -> Layout<'a>

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Layout<'_>

Source§

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

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

impl<'a> Follow<'a> for Layout<'a>

Source§

type Inner = Layout<'a>

Source§

unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner

Safety Read more
Source§

impl<'a> PartialEq for Layout<'a>

Source§

fn eq(&self, other: &Layout<'a>) -> bool

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

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

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

impl Verifiable for Layout<'_>

Source§

fn run_verifier( v: &mut Verifier<'_, '_>, pos: usize, ) -> Result<(), InvalidFlatbuffer>

Runs the verifier for this type, assuming its at position pos in the verifier’s buffer. Should not need to be called directly.
Source§

impl<'a> Copy for Layout<'a>

Source§

impl<'a> StructuralPartialEq for Layout<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Layout<'a>

§

impl<'a> RefUnwindSafe for Layout<'a>

§

impl<'a> Send for Layout<'a>

§

impl<'a> Sync for Layout<'a>

§

impl<'a> Unpin for Layout<'a>

§

impl<'a> UnwindSafe for Layout<'a>

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> 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, 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,