soroban_cli/commands/contract/
alias.rs

1use crate::commands::global;
2
3pub mod add;
4pub mod ls;
5pub mod remove;
6pub mod show;
7
8#[derive(Debug, clap::Subcommand)]
9pub enum Cmd {
10    /// Remove contract alias
11    Remove(remove::Cmd),
12
13    /// Add contract alias
14    Add(add::Cmd),
15
16    /// Show the contract id associated with a given alias
17    Show(show::Cmd),
18
19    /// List all aliases
20    Ls(ls::Cmd),
21}
22
23#[derive(thiserror::Error, Debug)]
24pub enum Error {
25    #[error(transparent)]
26    Remove(#[from] remove::Error),
27
28    #[error(transparent)]
29    Add(#[from] add::Error),
30
31    #[error(transparent)]
32    Show(#[from] show::Error),
33
34    #[error(transparent)]
35    Ls(#[from] ls::Error),
36}
37
38impl Cmd {
39    pub fn run(&self, global_args: &global::Args) -> Result<(), Error> {
40        match &self {
41            Cmd::Remove(remove) => remove.run(global_args)?,
42            Cmd::Add(add) => add.run(global_args)?,
43            Cmd::Show(show) => show.run(global_args)?,
44            Cmd::Ls(ls) => ls.run()?,
45        }
46        Ok(())
47    }
48}