plaza_lobby 0.7.3

Single-server lobby and room management for the Plaza real-time shared-state framework.
Documentation
//! Plaza Lobby: components for building single-server lobby and room
//! management on top of Plaza Core.
//!
//! Implement [`RoomFactory`] for your game, hand it to an
//! [`InMemoryLobbyManager`], and the manager handles room creation, listing,
//! join authorization, and reaping finished rooms.
//!
//! Four smaller pieces sit around the manager. None holds timers or spawns
//! anything except `CachedTicketRegistry`, whose cache runs its own janitor
//! thread, so an application drives them from its own `StateLogic`:
//!
//! - [`MatchQueue`] for games where a player is paired rather than choosing,
//!   including filling the seats nobody came for.
//! - [`SeatReservations`] for the window between a lobby admitting a player and
//!   that player's socket arriving.
//! - [`TicketStore`] so a room learns who connected from the lobby rather than
//!   from the client, as either [`MapTicketRegistry`] or, behind the `cache`
//!   feature, `CachedTicketRegistry`.
//! - [`routing`] for placing a connection in the room whose schedule fits it.

pub mod error;
pub mod factory;
pub mod manager;
pub mod op_payloads;
pub mod queue;
pub mod reservations;
pub mod room;
pub mod routing;
pub mod tickets;
pub mod types;

pub use error::LobbyError;
pub use factory::RoomFactory;
pub use manager::{InMemoryLobbyManager, PasswordVerifier};
pub use op_payloads::*;
pub use queue::{Formed, MatchQueue};
pub use reservations::SeatReservations;
pub use room::{InProcessRoomHandle, RoomHandle};
#[cfg(feature = "cache")]
pub use tickets::CachedTicketRegistry;
pub use tickets::{MapTicketRegistry, Ticket, TicketStore};
pub use types::{GameMode, RoomId};