Skip to main content

VirtualDataSlice

Struct VirtualDataSlice 

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

A columnar data slice returned from a virtual server view query.

This struct represents a rectangular slice of data from a view, stored internally as Arrow builders during population and frozen into a RecordBatch on first consumption.

Implementations§

Source§

impl VirtualDataSlice

Source

pub fn new(config: ViewConfig) -> Self

Source

pub fn from_arrow_ipc(&mut self, ipc: &[u8]) -> Result<(), Box<dyn Error>>

Loads data from Arrow IPC file format bytes, with automatic post-processing based on the view configuration.

When group_by is active, extracts __GROUPING_ID__ and __ROW_PATH_N__ columns to build self.row_path, then removes __GROUPING_ID__ from the output RecordBatch. The __ROW_PATH_N__ columns are kept in the frozen batch so downstream Arrow IPC consumers (with_typed_arrays, used by viewer-charts to drive its categorical/numeric axis resolvers and tree-hierarchy walkers) see them inline — matching the native perspective-server’s to_arrow output when machine_column_names: true.

Source

pub fn render_to_columns_json( &mut self, style: RowPathStyle, id: bool, ) -> Result<String, Box<dyn Error>>

Serializes the data to a column-oriented JSON string.

style selects between the legacy __ROW_PATH__ sidecar (Sidecar, used by to_columns) and the native per-level __ROW_PATH_N__ columns (PerLevel, currently unused — reserved for the future deprecation of __ROW_PATH__). See RowPathStyle for context.

id emits an __ID__ column of per-row identities, matching the native engine’s to_columns(id = true) shape for grouped views (each row’s identity is its __ROW_PATH__ prefix). Ungrouped views have no row_path and emit no __ID__ — consumers fall back to positional identity, as before.

Source

pub fn set_col<T: SetVirtualDataColumn>( &mut self, name: &str, grouping_id: Option<usize>, index: usize, value: T, ) -> Result<(), Box<dyn Error>>

Sets a value in a column at the specified row index.

A __ROW_PATH_N__ value is added to the row’s __ROW_PATH__ sidecar path when grouping_id marks level N as un-rolled-up, and is always written to the __ROW_PATH_N__ column itself, which is kept in the frozen batch as in Self::from_arrow_ipc - see the comment there. Otherwise, the value is inserted into the named column.

Creates the column if it does not already exist.

Trait Implementations§

Source§

impl Debug for VirtualDataSlice

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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