Struct vortex_flatbuffers::footer::Layout

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

A Layout is a recursive data structure that describes the physical layout of the data in a Vortex file. 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_BUFFERS: VOffsetT = 6u16

source

pub const VT_CHILDREN: VOffsetT = 8u16

source

pub const VT_ROW_COUNT: VOffsetT = 10u16

source

pub const VT_METADATA: 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

source

pub fn buffers(&self) -> Option<Vector<'a, Buffer>>

source

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

source

pub fn row_count(&self) -> u64

source

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

Trait Implementations§

source§

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

source§

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

Returns a copy 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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> 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.
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,