pub struct SpaceViewClassRegistry {
space_view_classes: HashMap<SpaceViewClassIdentifier, SpaceViewClassRegistryEntry>,
context_systems: HashMap<ViewSystemIdentifier, ContextSystemTypeRegistryEntry>,
visualizers: HashMap<ViewSystemIdentifier, VisualizerTypeRegistryEntry>,
placeholder: SpaceViewClassRegistryEntry,
}
Expand description
Registry of all known space view types.
Expected to be populated on viewer startup.
Fields§
§space_view_classes: HashMap<SpaceViewClassIdentifier, SpaceViewClassRegistryEntry>
§context_systems: HashMap<ViewSystemIdentifier, ContextSystemTypeRegistryEntry>
§visualizers: HashMap<ViewSystemIdentifier, VisualizerTypeRegistryEntry>
§placeholder: SpaceViewClassRegistryEntry
Implementations§
source§impl SpaceViewClassRegistry
impl SpaceViewClassRegistry
sourcepub fn add_class<T: SpaceViewClass + Default + 'static>(
&mut self
) -> Result<(), SpaceViewClassRegistryError>
pub fn add_class<T: SpaceViewClass + Default + 'static>( &mut self ) -> Result<(), SpaceViewClassRegistryError>
Adds a new space view class.
Fails if a space view class with the same name was already registered.
sourcepub fn remove_class<T: SpaceViewClass + Sized>(
&mut self
) -> Result<(), SpaceViewClassRegistryError>
pub fn remove_class<T: SpaceViewClass + Sized>( &mut self ) -> Result<(), SpaceViewClassRegistryError>
Removes a space view class from the registry.
sourcefn get_class(
&self,
name: SpaceViewClassIdentifier
) -> Option<&dyn SpaceViewClass>
fn get_class( &self, name: SpaceViewClassIdentifier ) -> Option<&dyn SpaceViewClass>
Queries a Space View type by class name, returning None
if it is not registered.
sourcepub fn display_name(&self, name: SpaceViewClassIdentifier) -> &'static str
pub fn display_name(&self, name: SpaceViewClassIdentifier) -> &'static str
Returns the user-facing name for the given space view class.
If the class is unknown, returns a placeholder name.
sourcepub fn get_class_or_log_error(
&self,
name: SpaceViewClassIdentifier
) -> &dyn SpaceViewClass
pub fn get_class_or_log_error( &self, name: SpaceViewClassIdentifier ) -> &dyn SpaceViewClass
Queries a Space View type by class name and logs if it fails, returning a placeholder class.
sourcepub fn iter_registry(
&self
) -> impl Iterator<Item = &SpaceViewClassRegistryEntry>
pub fn iter_registry( &self ) -> impl Iterator<Item = &SpaceViewClassRegistryEntry>
Iterates over all registered Space View class types, sorted by name.
sourcepub fn applicable_entities_for_visualizer_systems(
&self,
store_id: &StoreId
) -> PerVisualizer<ApplicableEntities>
pub fn applicable_entities_for_visualizer_systems( &self, store_id: &StoreId ) -> PerVisualizer<ApplicableEntities>
For each visualizer, return the set of entities that is applicable to it.
The list is kept up to date by store subscribers.
sourcepub fn indicated_entities_per_visualizer(
&self,
store_id: &StoreId
) -> PerVisualizer<IndicatedEntities>
pub fn indicated_entities_per_visualizer( &self, store_id: &StoreId ) -> PerVisualizer<IndicatedEntities>
For each visualizer, the set of entities that have at least one matching indicator component.
pub fn new_context_collection( &self, space_view_class_identifier: SpaceViewClassIdentifier ) -> ViewContextCollection
pub fn new_visualizer_collection( &self, space_view_class_identifier: SpaceViewClassIdentifier ) -> VisualizerCollection
Trait Implementations§
source§impl Default for SpaceViewClassRegistry
impl Default for SpaceViewClassRegistry
source§fn default() -> SpaceViewClassRegistry
fn default() -> SpaceViewClassRegistry
Auto Trait Implementations§
impl Freeze for SpaceViewClassRegistry
impl !RefUnwindSafe for SpaceViewClassRegistry
impl Send for SpaceViewClassRegistry
impl Sync for SpaceViewClassRegistry
impl Unpin for SpaceViewClassRegistry
impl !UnwindSafe for SpaceViewClassRegistry
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request