Skip to main content

ClientReloadListeners

Trait ClientReloadListeners 

pub trait ClientReloadListeners {
    // Required methods
    fn add_listener(
        &mut self,
        id: Identifier,
        converter: FileToIdConverter,
        listener: Arc<dyn ClientReloadListener>,
    ) -> 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 client reload’s listener registry, as add_client_reload_listeners hands it out: its registration methods and a read-only view of names and edges, rebuilt on each client reload. Listener names need not belong to the registering mod.

Required Methods§

fn add_listener( &mut self, id: Identifier, converter: FileToIdConverter, listener: Arc<dyn ClientReloadListener>, ) -> 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_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>

The registered names in registration order, boundaries included.

fn get_graph(&self) -> Vec<(Identifier, Identifier)>

The dependency edges as (first, second) names.

fn get_last_vanilla_listener(&self) -> Identifier

The name of the vanilla anchor preceding mod listeners by default.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§