parsec_tool/subcommands/
list_opcodes.rs1use crate::error::Result;
7use log::info;
8use parsec_client::BasicClient;
9use std::convert::TryInto;
10use structopt::StructOpt;
11
12#[derive(Debug, StructOpt)]
14pub struct ListOpcodes {
15 #[structopt(short = "p", long = "provider")]
17 pub provider: Option<u8>,
18}
19
20impl ListOpcodes {
21 pub fn run(&self, basic_client: BasicClient) -> Result<()> {
23 let provider = match self.provider {
24 Some(provider) => provider.try_into()?,
25 None => basic_client.implicit_provider(),
26 };
27 let opcodes = basic_client.list_opcodes(provider)?;
28
29 info!("Available opcodes for {}:", provider);
30 for provider_opcode in opcodes {
31 println!("0x{:02x} ({:?})", provider_opcode as u32, provider_opcode);
32 }
33 Ok(())
34 }
35}