1use super::subcommands::disable::args::DisableCommand;
6use super::subcommands::dump::args::DumpCommand;
7use super::subcommands::host::args::HostCommand;
8use super::subcommands::list::args::ListCommand;
9use super::subcommands::list_composite_node_specs::args::ListCompositeNodeSpecsCommand;
10use super::subcommands::list_composites::args::ListCompositesCommand;
11use super::subcommands::list_devices::args::ListDevicesCommand;
12use super::subcommands::list_hosts::args::ListHostsCommand;
13use super::subcommands::node::args::NodeCommand;
14use super::subcommands::register::args::RegisterCommand;
15use super::subcommands::restart::args::RestartCommand;
16use super::subcommands::test_node::args::TestNodeCommand;
17use argh::{ArgsInfo, FromArgs};
18
19#[cfg(not(target_os = "fuchsia"))]
20use static_checks_lib::args::StaticChecksCommand;
21
22#[derive(ArgsInfo, FromArgs, Debug, PartialEq)]
23#[argh(name = "driver", description = "Support driver development workflows")]
24pub struct DriverCommand {
25 #[argh(switch, short = 's', long = "select")]
27 pub select: bool,
28
29 #[argh(subcommand)]
30 pub subcommand: DriverSubCommand,
31}
32
33#[cfg(target_os = "fuchsia")]
34#[derive(ArgsInfo, FromArgs, Debug, PartialEq)]
35#[argh(subcommand)]
36pub enum DriverSubCommand {
37 Disable(DisableCommand),
38 Dump(DumpCommand),
39 List(ListCommand),
40 ListComposites(ListCompositesCommand),
41 ListDevices(ListDevicesCommand),
42 ListHosts(ListHostsCommand),
43 ListCompositeNodeSpecs(ListCompositeNodeSpecsCommand),
44 Register(RegisterCommand),
45 Restart(RestartCommand),
46 TestNode(TestNodeCommand),
47 Node(NodeCommand),
49 Host(HostCommand),
50}
51
52#[allow(clippy::large_enum_variant)]
54#[cfg(not(target_os = "fuchsia"))]
55#[derive(ArgsInfo, FromArgs, Debug, PartialEq)]
56#[argh(subcommand)]
57pub enum DriverSubCommand {
58 Disable(DisableCommand),
59 Dump(DumpCommand),
60 List(ListCommand),
61 ListComposites(ListCompositesCommand),
62 ListDevices(ListDevicesCommand),
63 ListHosts(ListHostsCommand),
64 ListCompositeNodeSpecs(ListCompositeNodeSpecsCommand),
65 Register(RegisterCommand),
66 Restart(RestartCommand),
67 StaticChecks(StaticChecksCommand),
68 TestNode(TestNodeCommand),
69 Node(NodeCommand),
71 Host(HostCommand),
72}