ServerEvents

Trait ServerEvents 

Source
pub trait ServerEvents: Send + Sync {
    // Required methods
    fn started(&self, server: &ServerSummary);
    fn stopping(&self, server: &ServerSummary);
    fn stopped(&self, server: &ServerSummary);
    fn snapshot(&self, servers: &[ServerSummary]);
    fn error(&self, server: &ServerSummary, error: &str);
}
Expand description

Port for emitting server lifecycle events.

This trait decouples the core server lifecycle logic from transport-specific event emission (Tauri events, SSE, logging, etc.). Implementations convert ServerSummary to their native event format.

§Design

  • Object-safe: Uses &self for dynamic dispatch via Arc<dyn ServerEvents>
  • Fire-and-forget: Methods don’t return Result — adapters handle errors internally
  • Generic: No knowledge of Tauri/Axum/CLI specifics

§Example

use gglib_core::events::{ServerEvents, ServerSummary};

struct LoggingEvents;

impl ServerEvents for LoggingEvents {
    fn started(&self, server: &ServerSummary) {
        println!("Server {} started on port {}", server.model_name, server.port);
    }
    fn stopping(&self, server: &ServerSummary) {
        println!("Stopping server {}", server.model_name);
    }
    fn stopped(&self, server: &ServerSummary) {
        println!("Server {} stopped", server.model_name);
    }
    fn snapshot(&self, servers: &[ServerSummary]) {
        println!("Server snapshot: {} running", servers.len());
    }
    fn error(&self, server: &ServerSummary, error: &str) {
        eprintln!("Server {} error: {}", server.model_name, error);
    }
}

Required Methods§

Source

fn started(&self, server: &ServerSummary)

Called when a server has successfully started.

Source

fn stopping(&self, server: &ServerSummary)

Called just before stopping a server.

Source

fn stopped(&self, server: &ServerSummary)

Called after a server has stopped.

Source

fn snapshot(&self, servers: &[ServerSummary])

Called to broadcast the current state of all running servers.

Source

fn error(&self, server: &ServerSummary, error: &str)

Called when a server error occurs.

Implementors§