Trait ServerReloadListeners
pub trait ServerReloadListeners {
// Required methods
fn add_listener(
&mut self,
id: Identifier,
converter: FileToIdConverter,
listener: Arc<dyn ServerReloadListener>,
) -> Result<(), ReloadOrderError>;
fn add_retained(
&mut self,
id: Identifier,
converter: FileToIdConverter,
listener: Arc<dyn ServerReloadListener>,
retained: Arc<dyn Any + Send + Sync>,
) -> Result<(), ReloadOrderError>;
fn add_dependency(
&mut self,
first: Identifier,
second: Identifier,
) -> Result<(), ReloadOrderError>;
fn get_registry(&self) -> Vec<Identifier>;
fn get_graph(&self) -> Vec<(Identifier, Identifier)>;
fn get_last_vanilla_listener(&self) -> Identifier;
}Expand description
The server reload’s listener registry, as add_server_reload_listeners hands it out: its
registration methods and a read-only view of names and edges, rebuilt on each server reload.
Listener names need not belong to the registering mod.
Required Methods§
fn add_listener(
&mut self,
id: Identifier,
converter: FileToIdConverter,
listener: Arc<dyn ServerReloadListener>,
) -> Result<(), ReloadOrderError>
fn add_listener( &mut self, id: Identifier, converter: FileToIdConverter, listener: Arc<dyn ServerReloadListener>, ) -> Result<(), ReloadOrderError>
Register a unique listener and converter, e.g. FileToIdConverter::json("machines").
Keep the Arc to read the listener’s published state outside reloads.
fn add_retained(
&mut self,
id: Identifier,
converter: FileToIdConverter,
listener: Arc<dyn ServerReloadListener>,
retained: Arc<dyn Any + Send + Sync>,
) -> Result<(), ReloadOrderError>
fn add_retained( &mut self, id: Identifier, converter: FileToIdConverter, listener: Arc<dyn ServerReloadListener>, retained: Arc<dyn Any + Send + Sync>, ) -> Result<(), ReloadOrderError>
add_listener, keeping retained (the listener itself, as the
mod holds it) in the reload resources; mods reach it through add_retained_listener.
fn add_dependency(
&mut self,
first: Identifier,
second: Identifier,
) -> Result<(), ReloadOrderError>
fn add_dependency( &mut self, first: Identifier, second: Identifier, ) -> Result<(), ReloadOrderError>
Require first before second; both names must already be registered.
fn get_registry(&self) -> Vec<Identifier>
fn get_registry(&self) -> Vec<Identifier>
The registered names in registration order, boundaries included.
fn get_graph(&self) -> Vec<(Identifier, Identifier)>
fn get_graph(&self) -> Vec<(Identifier, Identifier)>
The dependency edges as (first, second) names.
fn get_last_vanilla_listener(&self) -> Identifier
fn get_last_vanilla_listener(&self) -> Identifier
The name of the vanilla anchor preceding mod listeners by default.
Implementations§
§impl dyn ServerReloadListeners + '_
impl dyn ServerReloadListeners + '_
pub fn add_retained_listener<T>(
&mut self,
key: &ListenerKey<T>,
converter: FileToIdConverter,
listener: Arc<T>,
) -> Result<(), ReloadOrderError>where
T: ServerReloadListener,
pub fn add_retained_listener<T>(
&mut self,
key: &ListenerKey<T>,
converter: FileToIdConverter,
listener: Arc<T>,
) -> Result<(), ReloadOrderError>where
T: ServerReloadListener,
Register a listener whose object is also kept in the reload resources, as
NeoForge’s addRetainedListener(key, listener): the caller builds the
typed ListenerKey (ListenerKey::new(id)), and reads the object back
through ServerReloadResources after the reload, from any server hook.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".