re_types/blueprint/archetypes/
dataframe_query.rs#![allow(unused_imports)]
#![allow(unused_parens)]
#![allow(clippy::clone_on_copy)]
#![allow(clippy::cloned_instead_of_copied)]
#![allow(clippy::map_flatten)]
#![allow(clippy::needless_question_mark)]
#![allow(clippy::new_without_default)]
#![allow(clippy::redundant_closure)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::too_many_lines)]
use ::re_types_core::external::arrow2;
use ::re_types_core::SerializationResult;
use ::re_types_core::{ComponentBatch, ComponentBatchCowWithDescriptor};
use ::re_types_core::{ComponentDescriptor, ComponentName};
use ::re_types_core::{DeserializationError, DeserializationResult};
#[derive(Clone, Debug)]
pub struct DataframeQuery {
pub timeline: Option<crate::blueprint::components::TimelineName>,
pub filter_by_range: Option<crate::blueprint::components::FilterByRange>,
pub filter_is_not_null: Option<crate::blueprint::components::FilterIsNotNull>,
pub apply_latest_at: Option<crate::blueprint::components::ApplyLatestAt>,
pub select: Option<crate::blueprint::components::SelectedColumns>,
}
static REQUIRED_COMPONENTS: once_cell::sync::Lazy<[ComponentDescriptor; 0usize]> =
once_cell::sync::Lazy::new(|| []);
static RECOMMENDED_COMPONENTS: once_cell::sync::Lazy<[ComponentDescriptor; 1usize]> =
once_cell::sync::Lazy::new(|| {
[ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.DataframeQueryIndicator".into(),
archetype_field_name: None,
}]
});
static OPTIONAL_COMPONENTS: once_cell::sync::Lazy<[ComponentDescriptor; 5usize]> =
once_cell::sync::Lazy::new(|| {
[
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.TimelineName".into(),
archetype_field_name: Some("timeline".into()),
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.FilterByRange".into(),
archetype_field_name: Some("filter_by_range".into()),
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.FilterIsNotNull".into(),
archetype_field_name: Some("filter_is_not_null".into()),
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.ApplyLatestAt".into(),
archetype_field_name: Some("apply_latest_at".into()),
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.SelectedColumns".into(),
archetype_field_name: Some("select".into()),
},
]
});
static ALL_COMPONENTS: once_cell::sync::Lazy<[ComponentDescriptor; 6usize]> =
once_cell::sync::Lazy::new(|| {
[
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.DataframeQueryIndicator".into(),
archetype_field_name: None,
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.TimelineName".into(),
archetype_field_name: Some("timeline".into()),
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.FilterByRange".into(),
archetype_field_name: Some("filter_by_range".into()),
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.FilterIsNotNull".into(),
archetype_field_name: Some("filter_is_not_null".into()),
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.ApplyLatestAt".into(),
archetype_field_name: Some("apply_latest_at".into()),
},
ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
component_name: "rerun.blueprint.components.SelectedColumns".into(),
archetype_field_name: Some("select".into()),
},
]
});
impl DataframeQuery {
pub const NUM_COMPONENTS: usize = 6usize;
}
pub type DataframeQueryIndicator = ::re_types_core::GenericIndicatorComponent<DataframeQuery>;
impl ::re_types_core::Archetype for DataframeQuery {
type Indicator = DataframeQueryIndicator;
#[inline]
fn name() -> ::re_types_core::ArchetypeName {
"rerun.blueprint.archetypes.DataframeQuery".into()
}
#[inline]
fn display_name() -> &'static str {
"Dataframe query"
}
#[inline]
fn indicator() -> ComponentBatchCowWithDescriptor<'static> {
static INDICATOR: DataframeQueryIndicator = DataframeQueryIndicator::DEFAULT;
ComponentBatchCowWithDescriptor::new(&INDICATOR as &dyn ::re_types_core::ComponentBatch)
}
#[inline]
fn required_components() -> ::std::borrow::Cow<'static, [ComponentDescriptor]> {
REQUIRED_COMPONENTS.as_slice().into()
}
#[inline]
fn recommended_components() -> ::std::borrow::Cow<'static, [ComponentDescriptor]> {
RECOMMENDED_COMPONENTS.as_slice().into()
}
#[inline]
fn optional_components() -> ::std::borrow::Cow<'static, [ComponentDescriptor]> {
OPTIONAL_COMPONENTS.as_slice().into()
}
#[inline]
fn all_components() -> ::std::borrow::Cow<'static, [ComponentDescriptor]> {
ALL_COMPONENTS.as_slice().into()
}
#[inline]
fn from_arrow2_components(
arrow_data: impl IntoIterator<Item = (ComponentName, Box<dyn arrow2::array::Array>)>,
) -> DeserializationResult<Self> {
re_tracing::profile_function!();
use ::re_types_core::{Loggable as _, ResultExt as _};
let arrays_by_name: ::std::collections::HashMap<_, _> = arrow_data
.into_iter()
.map(|(name, array)| (name.full_name(), array))
.collect();
let timeline =
if let Some(array) = arrays_by_name.get("rerun.blueprint.components.TimelineName") {
<crate::blueprint::components::TimelineName>::from_arrow2_opt(&**array)
.with_context("rerun.blueprint.archetypes.DataframeQuery#timeline")?
.into_iter()
.next()
.flatten()
} else {
None
};
let filter_by_range =
if let Some(array) = arrays_by_name.get("rerun.blueprint.components.FilterByRange") {
<crate::blueprint::components::FilterByRange>::from_arrow2_opt(&**array)
.with_context("rerun.blueprint.archetypes.DataframeQuery#filter_by_range")?
.into_iter()
.next()
.flatten()
} else {
None
};
let filter_is_not_null =
if let Some(array) = arrays_by_name.get("rerun.blueprint.components.FilterIsNotNull") {
<crate::blueprint::components::FilterIsNotNull>::from_arrow2_opt(&**array)
.with_context("rerun.blueprint.archetypes.DataframeQuery#filter_is_not_null")?
.into_iter()
.next()
.flatten()
} else {
None
};
let apply_latest_at =
if let Some(array) = arrays_by_name.get("rerun.blueprint.components.ApplyLatestAt") {
<crate::blueprint::components::ApplyLatestAt>::from_arrow2_opt(&**array)
.with_context("rerun.blueprint.archetypes.DataframeQuery#apply_latest_at")?
.into_iter()
.next()
.flatten()
} else {
None
};
let select =
if let Some(array) = arrays_by_name.get("rerun.blueprint.components.SelectedColumns") {
<crate::blueprint::components::SelectedColumns>::from_arrow2_opt(&**array)
.with_context("rerun.blueprint.archetypes.DataframeQuery#select")?
.into_iter()
.next()
.flatten()
} else {
None
};
Ok(Self {
timeline,
filter_by_range,
filter_is_not_null,
apply_latest_at,
select,
})
}
}
impl ::re_types_core::AsComponents for DataframeQuery {
fn as_component_batches(&self) -> Vec<ComponentBatchCowWithDescriptor<'_>> {
re_tracing::profile_function!();
use ::re_types_core::Archetype as _;
[
Some(Self::indicator()),
(self
.timeline
.as_ref()
.map(|comp| (comp as &dyn ComponentBatch)))
.map(|batch| ::re_types_core::ComponentBatchCowWithDescriptor {
batch: batch.into(),
descriptor_override: Some(ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
archetype_field_name: Some(("timeline").into()),
component_name: ("rerun.blueprint.components.TimelineName").into(),
}),
}),
(self
.filter_by_range
.as_ref()
.map(|comp| (comp as &dyn ComponentBatch)))
.map(|batch| ::re_types_core::ComponentBatchCowWithDescriptor {
batch: batch.into(),
descriptor_override: Some(ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
archetype_field_name: Some(("filter_by_range").into()),
component_name: ("rerun.blueprint.components.FilterByRange").into(),
}),
}),
(self
.filter_is_not_null
.as_ref()
.map(|comp| (comp as &dyn ComponentBatch)))
.map(|batch| ::re_types_core::ComponentBatchCowWithDescriptor {
batch: batch.into(),
descriptor_override: Some(ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
archetype_field_name: Some(("filter_is_not_null").into()),
component_name: ("rerun.blueprint.components.FilterIsNotNull").into(),
}),
}),
(self
.apply_latest_at
.as_ref()
.map(|comp| (comp as &dyn ComponentBatch)))
.map(|batch| ::re_types_core::ComponentBatchCowWithDescriptor {
batch: batch.into(),
descriptor_override: Some(ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
archetype_field_name: Some(("apply_latest_at").into()),
component_name: ("rerun.blueprint.components.ApplyLatestAt").into(),
}),
}),
(self
.select
.as_ref()
.map(|comp| (comp as &dyn ComponentBatch)))
.map(|batch| ::re_types_core::ComponentBatchCowWithDescriptor {
batch: batch.into(),
descriptor_override: Some(ComponentDescriptor {
archetype_name: Some("rerun.blueprint.archetypes.DataframeQuery".into()),
archetype_field_name: Some(("select").into()),
component_name: ("rerun.blueprint.components.SelectedColumns").into(),
}),
}),
]
.into_iter()
.flatten()
.collect()
}
}
impl ::re_types_core::ArchetypeReflectionMarker for DataframeQuery {}
impl DataframeQuery {
#[inline]
pub fn new() -> Self {
Self {
timeline: None,
filter_by_range: None,
filter_is_not_null: None,
apply_latest_at: None,
select: None,
}
}
#[inline]
pub fn with_timeline(
mut self,
timeline: impl Into<crate::blueprint::components::TimelineName>,
) -> Self {
self.timeline = Some(timeline.into());
self
}
#[inline]
pub fn with_filter_by_range(
mut self,
filter_by_range: impl Into<crate::blueprint::components::FilterByRange>,
) -> Self {
self.filter_by_range = Some(filter_by_range.into());
self
}
#[inline]
pub fn with_filter_is_not_null(
mut self,
filter_is_not_null: impl Into<crate::blueprint::components::FilterIsNotNull>,
) -> Self {
self.filter_is_not_null = Some(filter_is_not_null.into());
self
}
#[inline]
pub fn with_apply_latest_at(
mut self,
apply_latest_at: impl Into<crate::blueprint::components::ApplyLatestAt>,
) -> Self {
self.apply_latest_at = Some(apply_latest_at.into());
self
}
#[inline]
pub fn with_select(
mut self,
select: impl Into<crate::blueprint::components::SelectedColumns>,
) -> Self {
self.select = Some(select.into());
self
}
}
impl ::re_types_core::SizeBytes for DataframeQuery {
#[inline]
fn heap_size_bytes(&self) -> u64 {
self.timeline.heap_size_bytes()
+ self.filter_by_range.heap_size_bytes()
+ self.filter_is_not_null.heap_size_bytes()
+ self.apply_latest_at.heap_size_bytes()
+ self.select.heap_size_bytes()
}
#[inline]
fn is_pod() -> bool {
<Option<crate::blueprint::components::TimelineName>>::is_pod()
&& <Option<crate::blueprint::components::FilterByRange>>::is_pod()
&& <Option<crate::blueprint::components::FilterIsNotNull>>::is_pod()
&& <Option<crate::blueprint::components::ApplyLatestAt>>::is_pod()
&& <Option<crate::blueprint::components::SelectedColumns>>::is_pod()
}
}