1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use clap::Subcommand;
pub mod token;
pub mod xdr;
#[derive(Debug, Subcommand)]
pub enum Cmd {
Token(token::Root),
Xdr(xdr::Cmd),
}
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error(transparent)]
Token(#[from] token::Error),
#[error(transparent)]
Xdr(#[from] xdr::Error),
}
impl Cmd {
pub async fn run(&self) -> Result<(), Error> {
match &self {
Cmd::Token(token) => token.run().await?,
Cmd::Xdr(xdr) => xdr.run()?,
}
Ok(())
}
}