driver_tools/subcommands/node/
args.rs

1// Copyright 2025 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5use super::subcommands::add::args::AddNodeCommand;
6use super::subcommands::graph::args::GraphNodeCommand;
7use super::subcommands::list::args::ListNodeCommand;
8use super::subcommands::remove::args::RemoveNodeCommand;
9use super::subcommands::show::args::ShowNodeCommand;
10use argh::{ArgsInfo, FromArgs};
11
12#[derive(ArgsInfo, FromArgs, Debug, PartialEq)]
13#[argh(
14    subcommand,
15    name = "node",
16    description = "Commands to interact with driver framework nodes."
17)]
18pub struct NodeCommand {
19    #[argh(subcommand)]
20    pub subcommand: NodeSubcommand,
21}
22
23#[derive(ArgsInfo, FromArgs, Debug, PartialEq)]
24#[argh(subcommand)]
25pub enum NodeSubcommand {
26    List(ListNodeCommand),
27    Show(ShowNodeCommand),
28    Add(AddNodeCommand),
29    Remove(RemoveNodeCommand),
30    Graph(GraphNodeCommand),
31}