Module session

Module session 

Source
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§

ChannelEntry
Entry in the CLI channel table. Stores the raw key bytes so the Channel descriptor 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::run so the driver can hold a long-lived read future across wake events without blocking writes to out.
PeerEntry
Entry in the CLI peer table.

Enums§

CliError
Errors surfaced from CliSession::run.