//! The trait every message handler implements.
//!
//! Handlers keep a `Weak<SteamClient>` back-reference, and the client is also
//! passed to [`ClientMsgHandler::handle_msg`], so a handler can reply without
//! holding a strong reference to the client (which would be a cycle).
//!
//! To expect a disconnect (e.g. before logging off), handlers call
//! `SteamClient::set_expect_disconnection`.
use async_trait;
use crateIPacketMsg;
use crateSteamResult;
use crateSteamClient;
/// A message handler. It gets the incoming messages it cares about and replies
/// through the [`SteamClient`].