dstar_gateway/tokio_shell/mod.rs
1//! Tokio async shell driving the sans-io `dstar-gateway-core`.
2//!
3//! This module provides the async API consumers will use once the
4//! legacy `ReflectorClient` is retired. For now it lives alongside
5//! the legacy code.
6//!
7//! Entry points:
8//! - [`Command`] — messages sent from the [`AsyncSession`] handle
9//! to the spawned session task
10//! - [`ShellError`] — shell-level errors (wraps core `Error` + adds
11//! channel/task-closed variants)
12//! - [`AsyncSession`] — user-facing handle over a spawned session;
13//! use [`AsyncSession::spawn`] to wire up the internal session loop
14//!
15//! The internal `SessionLoop` type is crate-private — it's constructed
16//! by [`AsyncSession::spawn`] and should not be touched directly by
17//! consumers.
18
19mod command;
20mod error;
21mod handle;
22mod session_loop;
23
24pub use command::Command;
25pub use error::ShellError;
26pub use handle::AsyncSession;
27pub(crate) use session_loop::SessionLoop;