Expand description
CliSession — the driver object that owns a clone of LocalNode<M>,
a CliIo, and a CliLogger, plus the in-session state tables.
The session holds a clone of LocalNode<M>. Other firmware components
hold their own clones of the same underlying node state and continue to
function independently.
§Driver pattern
tokio::select! {
r = host.run() => { r?; } // existing loop over pump_once()
r = cli.run() => { r?; } // loops read_line + service_events
}Inside cli.run():
loop {
select(read_line(&mut buf), wake.wait()):
Left(line) → parse + execute (may call MAC-I/O directly)
Right(wake) → service_events() only
service_events() always runs after each select
}Structs§
- Channel
Entry - Entry in the CLI channel table. Stores the raw key bytes so the
Channeldescriptor can be reconstructed for leave/bind operations. - CliSession
- The CLI driver. Owns the output half of the CLI transport; the input half
is passed to
CliSession::runso the driver can hold a long-lived read future across wake events without blocking writes toout. - Peer
Entry - Entry in the CLI peer table.
Enums§
- CliError
- Errors surfaced from
CliSession::run.