use clap::{command, Parser};
use crate::{commands::tx, xdr};
#[derive(Parser, Debug, Clone)]
#[group(skip)]
pub struct Cmd {
#[command(flatten)]
pub tx: tx::Args,
#[arg(long)]
pub data_name: xdr::StringM<64>,
#[arg(long)]
pub data_value: Option<xdr::BytesM<64>>,
}
impl From<&Cmd> for xdr::OperationBody {
fn from(cmd: &Cmd) -> Self {
let data_value = cmd.data_value.clone().map(Into::into);
let data_name = cmd.data_name.clone().into();
xdr::OperationBody::ManageData(xdr::ManageDataOp {
data_name,
data_value,
})
}
}