use std::{net::SocketAddrV4, str::FromStr};
use adb_client::{RustADBError, server::WaitForDeviceTransport};
use clap::Parser;
fn parse_wait_for_device_device_transport(
value: &str,
) -> Result<WaitForDeviceTransport, RustADBError> {
WaitForDeviceTransport::from_str(value)
}
#[derive(Parser, Debug)]
pub enum HostCommand {
Version,
Kill,
Devices {
#[clap(short = 'l', long = "long")]
long: bool,
},
TrackDevices,
Pair { address: SocketAddrV4, code: String },
Connect { address: SocketAddrV4 },
Disconnect { address: SocketAddrV4 },
Mdns {
#[clap(subcommand)]
subcommand: MdnsCommand,
},
ServerStatus,
WaitForDevice {
#[clap(short = 't', long = "transport", value_parser = parse_wait_for_device_device_transport)]
transport: Option<WaitForDeviceTransport>,
},
}
#[derive(Parser, Debug)]
pub enum MdnsCommand {
Check,
Services,
}