use re_log_types::EntityPath;
use re_types_core::LayerName;
use crate::common::v1alpha1::TaskId;
use crate::common::v1alpha1::ext::SegmentId;
#[derive(quiver::Quiver)]
pub struct QueryDatasetDataframe {
#[quiver(metadata("rerun:kind" = "control"))]
pub chunk_id: quiver::Column<re_chunk::ChunkId>,
#[quiver(metadata("rerun:kind" = "control"))]
pub chunk_segment_id: quiver::Column<SegmentId>,
pub rerun_segment_layer: quiver::Column<LayerName>,
pub chunk_key: quiver::Column<quiver::Binary>,
#[quiver(metadata("rerun:kind" = "control"))]
pub chunk_entity_path: quiver::Column<EntityPath>,
#[quiver(metadata("rerun:kind" = "control"))]
pub chunk_is_static: quiver::Column<bool>,
pub chunk_byte_len: quiver::Column<u64>,
pub chunk_byte_size_uncompressed: quiver::Column<Option<u64>>,
pub rerun_layer_direct_url: quiver::Column<Option<quiver::Dictionary<i32, quiver::Utf8>>>,
pub rerun_layer_direct_url_expires_at: quiver::Column<Option<quiver::Dictionary<i32, i64>>>,
#[quiver(extra_columns)]
pub extra_columns: Vec<quiver::DynColumn>,
}
#[derive(Default, quiver::Quiver)]
pub struct QueryTasksDataframe {
pub task_id: quiver::Column<TaskId>,
pub kind: quiver::Column<Option<quiver::Utf8>>,
pub data: quiver::Column<Option<quiver::Utf8>>,
pub exec_status: quiver::Column<quiver::Utf8>,
pub msgs: quiver::Column<Option<quiver::Utf8>>,
pub blob_len: quiver::Column<Option<u64>>,
pub lease_owner: quiver::Column<Option<quiver::Utf8>>,
pub lease_expiration: quiver::Column<Option<quiver::TimestampNanosecond>>,
pub attempts: quiver::Column<u8>,
pub creation_time: quiver::Column<Option<quiver::TimestampNanosecond>>,
pub last_update_time: quiver::Column<Option<quiver::TimestampNanosecond>>,
}
#[derive(Default, quiver::Quiver)]
pub struct RegisterWithDatasetDataframe {
pub rerun_segment_id: quiver::Column<SegmentId>,
pub rerun_segment_layer: quiver::Column<LayerName>,
pub rerun_segment_type: quiver::Column<quiver::Utf8>,
pub rerun_storage_url: quiver::Column<quiver::Utf8>,
pub rerun_task_id: quiver::Column<TaskId>,
}
#[derive(Default, quiver::Quiver)]
pub struct ScanSegmentTableDataframe {
pub rerun_segment_id: quiver::Column<SegmentId>,
pub rerun_layer_names: quiver::Column<quiver::List<LayerName>>,
pub rerun_storage_urls: quiver::Column<quiver::List<quiver::Utf8>>,
pub rerun_last_updated_at: quiver::Column<quiver::TimestampNanosecond>,
pub rerun_num_chunks: quiver::Column<u64>,
pub rerun_size_bytes: quiver::Column<u64>,
#[quiver(extra_columns)]
pub extra_columns: Vec<quiver::DynColumn>,
}
#[derive(Default, quiver::Quiver)]
pub struct ScanDatasetManifestDataframe {
pub rerun_layer_name: quiver::Column<LayerName>,
pub rerun_segment_id: quiver::Column<SegmentId>,
pub rerun_storage_url: quiver::Column<quiver::Utf8>,
pub rerun_layer_type: quiver::Column<quiver::Utf8>,
pub rerun_registration_time: quiver::Column<quiver::TimestampNanosecond>,
pub rerun_last_updated_at: quiver::Column<quiver::TimestampNanosecond>,
pub rerun_num_chunks: quiver::Column<u64>,
pub rerun_size_bytes: quiver::Column<u64>,
pub rerun_schema_sha256: quiver::Column<quiver::FixedSizeBinary<32>>,
pub rerun_registration_status: quiver::Column<quiver::Utf8>,
#[quiver(extra_columns)]
pub extra_columns: Vec<quiver::DynColumn>,
}
impl ScanDatasetManifestDataframe {
#[expect(clippy::too_many_arguments)]
pub fn new(
layer_names: Vec<LayerName>,
segment_ids: Vec<SegmentId>,
storage_urls: Vec<String>,
layer_types: Vec<String>,
registration_times: Vec<i64>,
last_updated_at_times: Vec<i64>,
num_chunks: Vec<u64>,
size_bytes: Vec<u64>,
schema_sha256s: Vec<[u8; 32]>,
registration_statuses: Vec<String>,
) -> Self {
Self {
rerun_layer_name: layer_names.into(),
rerun_segment_id: segment_ids.into(),
rerun_storage_url: storage_urls.into(),
rerun_layer_type: layer_types.into(),
rerun_registration_time: registration_times.into(),
rerun_last_updated_at: last_updated_at_times.into(),
rerun_num_chunks: num_chunks.into(),
rerun_size_bytes: size_bytes.into(),
rerun_schema_sha256: schema_sha256s.into(),
rerun_registration_status: registration_statuses.into(),
extra_columns: vec![],
}
}
}