kaspa_cli_lib/modules/
help.rs

1use crate::imports::*;
2
3#[derive(Default, Handler)]
4#[help("Displays this help message")]
5pub struct Help;
6
7impl Help {
8    async fn main(self: Arc<Self>, dyn_ctx: &Arc<dyn Context>, _argv: Vec<String>, _cmd: &str) -> Result<()> {
9        let term = dyn_ctx.term();
10        term.writeln("\nCommands:".crlf());
11
12        let ctx = dyn_ctx.clone().downcast_arc::<KaspaCli>()?;
13        let handlers = ctx.handlers().collect();
14        let handlers =
15            handlers.into_iter().filter_map(|h| h.verb(dyn_ctx).map(|verb| (verb, get_handler_help(h, dyn_ctx)))).collect::<Vec<_>>();
16
17        term.help(&handlers, None)?;
18
19        Ok(())
20    }
21}