pub trait Loggable: Sized + 'static + Send + Sync + Clone + SizeBytes {
// Required methods
fn arrow_datatype() -> DataType;
fn to_arrow_opt<'a>(
data: impl IntoIterator<Item = Option<impl Into<Cow<'a, Self>>>>,
) -> Result<Arc<dyn Array>, SerializationError>
where Self: 'a;
// Provided methods
fn arrow_empty() -> Arc<dyn Array> { ... }
fn to_arrow<'a>(
data: impl IntoIterator<Item = impl Into<Cow<'a, Self>>>,
) -> Result<Arc<dyn Array>, SerializationError>
where Self: 'a { ... }
fn from_arrow(data: &dyn Array) -> Result<Vec<Self>, DeserializationError> { ... }
fn from_arrow_opt(
data: &dyn Array,
) -> Result<Vec<Option<Self>>, DeserializationError> { ... }
}
Expand description
A Loggable
represents a single instance in an array of loggable data.
Internally, Arrow, and by extension Rerun, only deal with arrays of data. We refer to individual entries in these arrays as instances.
A Loggable
has no semantics (such as a name, for example): it’s just data.
If you want to encode semantics, then you’re looking for a Component
, which extends Loggable
.
Implementing the Loggable
trait automatically derives the LoggableBatch
implementation,
which makes it possible to work with lists’ worth of data in a generic fashion.
Required Methods§
sourcefn arrow_datatype() -> DataType
fn arrow_datatype() -> DataType
The underlying arrow::datatypes::DataType
, excluding datatype extensions.
sourcefn to_arrow_opt<'a>(
data: impl IntoIterator<Item = Option<impl Into<Cow<'a, Self>>>>,
) -> Result<Arc<dyn Array>, SerializationError>where
Self: 'a,
fn to_arrow_opt<'a>(
data: impl IntoIterator<Item = Option<impl Into<Cow<'a, Self>>>>,
) -> Result<Arc<dyn Array>, SerializationError>where
Self: 'a,
Given an iterator of options of owned or reference values to the current
Loggable
, serializes them into an Arrow array.
When using Rerun’s builtin components & datatypes, this can only fail if the data exceeds the maximum number of entries in an Arrow array (2^31 for standard arrays, 2^63 for large arrays).
Provided Methods§
fn arrow_empty() -> Arc<dyn Array>
sourcefn to_arrow<'a>(
data: impl IntoIterator<Item = impl Into<Cow<'a, Self>>>,
) -> Result<Arc<dyn Array>, SerializationError>where
Self: 'a,
fn to_arrow<'a>(
data: impl IntoIterator<Item = impl Into<Cow<'a, Self>>>,
) -> Result<Arc<dyn Array>, SerializationError>where
Self: 'a,
Given an iterator of owned or reference values to the current Loggable
, serializes
them into an Arrow array.
When using Rerun’s builtin components & datatypes, this can only fail if the data exceeds the maximum number of entries in an Arrow array (2^31 for standard arrays, 2^63 for large arrays).
sourcefn from_arrow(data: &dyn Array) -> Result<Vec<Self>, DeserializationError>
fn from_arrow(data: &dyn Array) -> Result<Vec<Self>, DeserializationError>
Given an Arrow array, deserializes it into a collection of Loggable
s.
sourcefn from_arrow_opt(
data: &dyn Array,
) -> Result<Vec<Option<Self>>, DeserializationError>
fn from_arrow_opt( data: &dyn Array, ) -> Result<Vec<Option<Self>>, DeserializationError>
Given an Arrow array, deserializes it into a collection of optional Loggable
s.