re_viewer_context/view/
mod.rs1mod diagnostic;
8mod highlights;
9mod named_system;
10mod spawn_heuristics;
11mod system_execution_output;
12mod view_class;
13mod view_class_placeholder;
14mod view_class_registry;
15mod view_context;
16mod view_context_system;
17mod view_query;
18mod view_states;
19mod visualizability_constraints;
20pub(crate) mod visualizer_entity_subscriber;
21mod visualizer_system;
22
23use std::sync::Arc;
24
25pub use diagnostic::{ViewerDiagnostic, ViewerReportSeverity};
26pub use highlights::{
27 OptionalViewEntityHighlight, ViewEntityHighlight, ViewHighlights, ViewOutlineMasks,
28};
29pub use named_system::{IdentifiedViewSystem, PerSystemEntities, ViewSystemIdentifier};
30pub use spawn_heuristics::{MAX_VIEWS_SPAWNED, RecommendedView, ViewSpawnHeuristics};
31pub use system_execution_output::{
32 SystemExecutionOutput, VisualizerTypeReport, VisualizerViewReport,
33};
34pub use view_class::{
35 RecommendedVisualizers, ViewClass, ViewClassExt, ViewClassLayoutPriority, ViewClassUiOutput,
36 ViewState, ViewStateExt, VisualizersSectionOutput, VisualizersSectionUi,
37};
38pub use view_class_placeholder::ViewClassPlaceholder;
39pub use view_class_registry::{ViewClassRegistry, ViewClassRegistryError, ViewSystemRegistrator};
40pub use view_context::ViewContext;
41pub use view_context_system::{
42 ViewContextCollection, ViewContextSystem, ViewContextSystemOncePerFrameResult, ViewSystemState,
43};
44pub use view_query::{
45 DataResult, RecommendedMappings, ViewQuery, VisualizerComponentMappings,
46 VisualizerComponentSource, VisualizerInstruction, VisualizerInstructionsPerType,
47};
48pub use view_states::{PreviewState, ViewStates};
49pub use visualizability_constraints::{
50 BufferAndFormatConstraint, SingleRequiredComponentConstraint, VisualizabilityConstraints,
51};
52pub use visualizer_system::{
53 VisualizerCollection, VisualizerExecutionOutput, VisualizerInstructionReport,
54 VisualizerQueryInfo, VisualizerReportContext, VisualizerSystem,
55};
56
57#[derive(Clone, Debug, thiserror::Error)]
64pub enum ViewSystemExecutionError {
65 #[error("View context system {0} not found")]
66 ContextSystemNotFound(&'static str),
67
68 #[error("View part system {0} not found")]
69 VisualizerSystemNotFound(&'static str),
70
71 #[error(transparent)]
72 QueryError(Arc<re_query::QueryError>),
73
74 #[error(transparent)]
75 DeserializationError(Arc<re_sdk_types::DeserializationError>),
76
77 #[error("Failed to create draw data: {0}")]
78 DrawDataCreationError(Arc<dyn std::error::Error + Send + Sync>),
79
80 #[error("Error accessing map view tiles.")]
81 MapTilesError,
82
83 #[error(transparent)]
84 GpuTransferError(#[from] re_renderer::CpuWriteGpuReadError),
85
86 #[error("Failed to downcast view's to the {0}.")]
87 StateCastError(&'static str),
88
89 #[error(transparent)]
90 ComponentFallbackError(#[from] crate::ComponentFallbackError),
91
92 #[error(transparent)]
93 ViewBuilderError(#[from] re_renderer::view_builder::ViewBuilderError),
94
95 #[error(transparent)]
96 RendererRegistrationError(#[from] re_renderer::RendererRegistrationError),
97}
98
99const _: () = assert!(
100 std::mem::size_of::<ViewSystemExecutionError>() <= 64,
101 "Error type is too large. Try to reduce its size by boxing some of its variants.",
102);
103
104impl From<re_renderer::renderer::LineDrawDataError> for ViewSystemExecutionError {
107 fn from(val: re_renderer::renderer::LineDrawDataError) -> Self {
108 Self::DrawDataCreationError(Arc::new(val))
109 }
110}
111
112impl From<re_renderer::renderer::PointCloudDrawDataError> for ViewSystemExecutionError {
113 fn from(val: re_renderer::renderer::PointCloudDrawDataError) -> Self {
114 Self::DrawDataCreationError(Arc::new(val))
115 }
116}
117
118impl From<re_renderer::renderer::GaussianSplatDrawDataError> for ViewSystemExecutionError {
119 fn from(val: re_renderer::renderer::GaussianSplatDrawDataError) -> Self {
120 Self::DrawDataCreationError(Arc::new(val))
121 }
122}
123
124impl From<re_sdk_types::DeserializationError> for ViewSystemExecutionError {
125 fn from(val: re_sdk_types::DeserializationError) -> Self {
126 Self::DeserializationError(Arc::new(val))
127 }
128}