caretta_sync_cli/cli/args/
verification_identifier.rs1use clap::Args;
2use iroh::PublicKey;
3use iroh_tickets::endpoint::EndpointTicket;
4use mtid::Dtid;
5
6use crate::cli::DeviceIdentifierArgs;
7
8#[derive(Args, Clone, Debug)]
10#[group(multiple = false, required = true)]
11pub struct VerificationIdentifierArgs {
12 #[arg(short, long)]
13 verificaton_id: Option<Dtid>,
14 #[command(flatten)]
15 device: DeviceIdentifierArgs,
16}
17
18impl From<VerificationIdentifierArgs>
19 for caretta_sync_core::proto::api::device_verification::Identifier
20{
21 fn from(value: VerificationIdentifierArgs) -> Self {
22 use caretta_sync_core::proto::api::device_verification::identifier::Value;
23 Self {
24 value: Some(match (value.verificaton_id, value.device) {
25 (Some(x), _) => Value::VerificationId(x.into()),
26 (None, x) => Value::Device(x.into()),
27 (_, _) => unreachable!("The parsed argument must be one."),
28 }),
29 }
30 }
31}