codeberg_cli/actions/label/
mod.rs

1use crate::render::option::option_display;
2
3pub mod create;
4pub mod delete;
5pub mod edit;
6pub mod list;
7
8use clap::Subcommand;
9
10use super::GeneralArgs;
11
12/// Label subcommands
13#[derive(Subcommand, Debug)]
14pub enum LabelArgs {
15    List(list::ListLabelsArgs),
16    Create(create::CreateLabelArgs),
17    Delete(delete::DeleteLabelArgs),
18    Edit(edit::EditLabelArgs),
19}
20
21impl LabelArgs {
22    pub async fn run(self, general_args: GeneralArgs) -> anyhow::Result<()> {
23        match self {
24            LabelArgs::List(args) => args.run(general_args).await,
25            LabelArgs::Create(args) => args.run(general_args).await,
26            LabelArgs::Delete(args) => args.run(general_args).await,
27            LabelArgs::Edit(args) => args.run(general_args).await,
28        }
29    }
30}
31
32fn display_label(label: &forgejo_api::structs::Label) -> String {
33    option_display(&label.name)
34}