Struct rerun::sdk::log::TransportChunk

source ·
pub struct TransportChunk {
    pub schema: Schema,
    pub data: Chunk<Box<dyn Array>>,
}
Expand description

A Chunk that is ready for transport. Obtained by calling Chunk::to_transport.

Implemented as an Arrow dataframe: a schema and a batch.

Use the Display implementation to dump the chunk as a nicely formatted table.

This has a stable ABI! The entire point of this type is to allow users to send raw arrow data into Rerun. This means we have to be very careful when checking the validity of the data: slipping corrupt data into the store could silently break all the index search logic (e.g. think of a chunk claiming to be sorted while it is in fact not).

Fields§

§schema: Schema

The schema of the dataframe, and all chunk-level and field-level metadata.

Take a look at the TransportChunk::CHUNK_METADATA_* and TransportChunk::FIELD_METADATA_* constants for more information about available metadata.

§data: Chunk<Box<dyn Array>>

All the control, time and component data.

Implementations§

source§

impl TransportChunk

source

pub const CHUNK_METADATA_KEY_ID: &'static str = "rerun.id"

The key used to identify a Rerun ChunkId in chunk-level ArrowSchema metadata.

source

pub const CHUNK_METADATA_KEY_ENTITY_PATH: &'static str = "rerun.entity_path"

The key used to identify a Rerun EntityPath in chunk-level ArrowSchema metadata.

source

pub const CHUNK_METADATA_KEY_HEAP_SIZE_BYTES: &'static str = "rerun.heap_size_bytes"

The key used to identify the size in bytes of the data, once loaded in memory, in chunk-level ArrowSchema metadata.

source

pub const CHUNK_METADATA_MARKER_IS_SORTED_BY_ROW_ID: &'static str = "rerun.is_sorted"

The marker used to identify whether a chunk is sorted in chunk-level ArrowSchema metadata.

The associated value is irrelevant – if this marker is present, then it is true.

Chunks are ascendingly sorted by their RowId column.

source

pub const FIELD_METADATA_KEY_KIND: &'static str = "rerun.kind"

The key used to identify the kind of a Rerun column in field-level ArrowSchema metadata.

That is: control columns (e.g. row_id), time columns or component columns.

source

pub const FIELD_METADATA_VALUE_KIND_TIME: &'static str = "time"

The value used to identify a Rerun time column in field-level ArrowSchema metadata.

source

pub const FIELD_METADATA_VALUE_KIND_CONTROL: &'static str = "control"

The value used to identify a Rerun control column in field-level ArrowSchema metadata.

source

pub const FIELD_METADATA_VALUE_KIND_DATA: &'static str = "data"

The value used to identify a Rerun data column in field-level ArrowSchema metadata.

source

pub const FIELD_METADATA_MARKER_IS_SORTED_BY_TIME: &'static str = Self::CHUNK_METADATA_MARKER_IS_SORTED_BY_ROW_ID

The marker used to identify whether a column is sorted in field-level ArrowSchema metadata.

The associated value is irrelevant – if this marker is present, then it is true.

Chunks are ascendingly sorted by their RowId column but, depending on whether the data was logged out of order or not for a given time column, that column might follow the global RowId while still being unsorted relative to its own time order.

source

pub fn chunk_metadata_id(id: ChunkId) -> BTreeMap<String, String>

Returns the appropriate chunk-level ArrowSchema metadata for a Rerun ChunkId.

source

pub fn chunk_metadata_heap_size_bytes( heap_size_bytes: u64 ) -> BTreeMap<String, String>

Returns the appropriate chunk-level ArrowSchema metadata for the in-memory size in bytes.

source

pub fn chunk_metadata_entity_path( entity_path: &EntityPath ) -> BTreeMap<String, String>

Returns the appropriate chunk-level ArrowSchema metadata for a Rerun EntityPath.

source

pub fn chunk_metadata_is_sorted() -> BTreeMap<String, String>

Returns the appropriate chunk-level ArrowSchema metadata for an IS_SORTED marker.

source

pub fn field_metadata_time_column() -> BTreeMap<String, String>

Returns the appropriate field-level ArrowSchema metadata for a Rerun time column.

source

pub fn field_metadata_control_column() -> BTreeMap<String, String>

Returns the appropriate field-level ArrowSchema metadata for a Rerun control column.

source

pub fn field_metadata_data_column() -> BTreeMap<String, String>

Returns the appropriate field-level ArrowSchema metadata for a Rerun data column.

source

pub fn field_metadata_is_sorted() -> BTreeMap<String, String>

Returns the appropriate field-level ArrowSchema metadata for an IS_SORTED marker.

source§

impl TransportChunk

source

pub fn id(&self) -> Result<ChunkId, ChunkError>

source

pub fn entity_path(&self) -> Result<EntityPath, ChunkError>

source

pub fn heap_size_bytes(&self) -> Option<u64>

source

pub fn is_sorted(&self) -> bool

Looks in the chunk metadata for the IS_SORTED marker.

It is possible that a chunk is sorted but didn’t set that marker. This is fine, although wasteful.

source

pub fn columns<'a>( &'a self, kind: &'a str ) -> impl Iterator<Item = (&'a Field, &'a Box<dyn Array>)> + 'a

source

pub fn all_columns(&self) -> impl Iterator<Item = (&Field, &Box<dyn Array>)>

source

pub fn controls(&self) -> impl Iterator<Item = (&Field, &Box<dyn Array>)>

Iterates all control columns present in this chunk.

source

pub fn components(&self) -> impl Iterator<Item = (&Field, &Box<dyn Array>)>

Iterates all data columns present in this chunk.

source

pub fn timelines(&self) -> impl Iterator<Item = (&Field, &Box<dyn Array>)>

Iterates all timeline columns present in this chunk.

source

pub fn num_columns(&self) -> usize

How many columns in total? Includes control, time, and component columns.

source

pub fn num_controls(&self) -> usize

source

pub fn num_timelines(&self) -> usize

source

pub fn num_components(&self) -> usize

source

pub fn num_rows(&self) -> usize

source§

impl TransportChunk

source

pub fn try_to_arrow_record_batch(&self) -> Result<RecordBatch, ArrowError>

Create an arrow-rs [RecordBatch] containing the data from this TransportChunk.

This is a “fairly” cheap operation, as it does not copy the underlying arrow data, but does incur overhead of generating an alternative representation of the arrow- related rust structures that refer to those data buffers.

source

pub fn from_arrow_record_batch(batch: &RecordBatch) -> TransportChunk

Create a TransportChunk from an arrow-rs [RecordBatch].

This is a “fairly” cheap operation, as it does not copy the underlying arrow data, but does incur overhead of generating an alternative representation of the arrow- related rust structures that refer to those data buffers.

Trait Implementations§

source§

impl Clone for TransportChunk

source§

fn clone(&self) -> TransportChunk

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 TransportChunk

source§

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

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

impl Display for TransportChunk

source§

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

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

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where T: Clone,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

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

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

source§

fn lossy_into(self) -> Dst

Performs the conversion.
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T> To for T
where T: ?Sized,

§

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

Converts to T by calling Into<T>::into.
§

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

Tries to convert to T by calling TryInto<T>::try_into.
source§

impl<T> ToOwned for T
where T: Clone,

§

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
§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

§

fn to_smolstr(&self) -> SmolStr

source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

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

§

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

§

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

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T> Ungil for T
where T: Send,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T

§

impl<T> WasmNotSync for T
where T: Sync,