pub trait RegistryExt {
type Entry: RegistryEntry;
// Required methods
fn freeze(&mut self);
fn by_id(&self, id: usize) -> Option<&'static Self::Entry>;
fn by_key(&self, key: &Identifier) -> Option<&'static Self::Entry>;
fn id_from_key(&self, key: &Identifier) -> Option<usize>;
fn len(&self) -> usize;
fn is_empty(&self) -> bool;
}Expand description
Generic trait for registries with a typed entry.
Entry is the concrete type (e.g. Block); all lookups return &'static Entry
to enforce cheap pointer copies and prevent expensive clones.
Required Associated Types§
type Entry: RegistryEntry
Required Methods§
fn freeze(&mut self)
fn by_id(&self, id: usize) -> Option<&'static Self::Entry>
fn by_key(&self, key: &Identifier) -> Option<&'static Self::Entry>
fn id_from_key(&self, key: &Identifier) -> Option<usize>
fn len(&self) -> usize
fn is_empty(&self) -> bool
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".