#![doc = document_features::document_features!()]
mod compact;
mod dataframe;
mod drop_time_range;
pub mod entity_tree;
mod events;
mod gc;
#[cfg(not(target_arch = "wasm32"))]
mod lazy_store;
mod lineage;
mod missing_chunk_reporter;
mod profile;
mod properties;
mod query;
mod rebatch_videos;
mod split_thick_thin;
mod stats;
mod store;
mod store_schema;
mod subscribers;
mod writes;
#[doc(no_inline)]
pub use {
re_chunk::{
Chunk, ChunkId, ChunkShared, LatestAtQuery, RangeQuery, RangeQueryOptions, RowId, Span,
UnitChunkShared,
},
re_log_types::{AbsoluteTimeRange, TimeInt, TimeType, Timeline},
re_sorbet::{ColumnDescriptor, ComponentColumnDescriptor, IndexColumnDescriptor},
};
pub use self::compact::{CompactionOptions, IsStartOfGop};
pub use self::dataframe::{
Index, IndexRange, IndexValue, QueryExpression, SparseFillStrategy, StaticColumnSelection,
ViewContentsSelector,
};
pub use self::entity_tree::EntityTree;
pub use self::events::{
ChunkComponentMeta, ChunkDeletionReason, ChunkMeta, ChunkStoreDiff, ChunkStoreDiffAddition,
ChunkStoreDiffDeletion, ChunkStoreDiffSchemaAddition, ChunkStoreDiffVirtualAddition,
ChunkStoreEvent,
};
pub use self::gc::{GarbageCollectionOptions, GarbageCollectionTarget};
pub use self::lineage::{ChunkDirectLineage, ChunkDirectLineageReport};
pub use self::missing_chunk_reporter::MissingChunkReporter;
pub use self::profile::OptimizationProfile;
pub use self::properties::{ExtractPropertiesError, extract_properties_from_chunks};
pub use self::query::QueryResults;
pub use self::stats::{ChunkStoreChunkStats, ChunkStoreStats};
pub use self::store::{
ChunkStore, ChunkStoreConfig, ChunkStoreGeneration, ChunkStoreHandle, ChunkStoreHandleWeak,
ColumnMetadata, QueriedChunkIdTracker,
};
pub use self::store_schema::StoreSchema;
pub use self::subscribers::{
ChunkStoreSubscriber, ChunkStoreSubscriberHandle, PerStoreChunkSubscriber,
};
#[cfg(not(target_arch = "wasm32"))]
pub use self::lazy_store::LazyStore;
pub(crate) use self::store::ColumnMetadataState;
pub mod external {
pub use {arrow, re_chunk};
}
#[derive(thiserror::Error, Debug)]
pub enum ChunkStoreError {
#[error("Chunks must be sorted before insertion in the chunk store")]
UnsortedChunk,
#[error(transparent)]
Chunk(#[from] re_chunk::ChunkError),
#[error("Failed to load data, parsing error: {0:#}")]
Codec(#[from] re_log_encoding::CodecError),
#[error(transparent)]
Provider(#[from] re_log_encoding::ChunkProviderError),
#[error("Failed to load data, semantic error: {0:#}")]
Sorbet(#[from] re_sorbet::SorbetError),
#[error("Failed to parse config: '{name}={value}': {err}")]
ParseConfig {
name: &'static str,
value: String,
err: Box<dyn std::error::Error + Send + Sync>,
},
}
pub type ChunkStoreResult<T> = ::std::result::Result<T, ChunkStoreError>;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ChunkTrackingMode {
Ignore,
Report,
PanicOnMissing,
}