use miden_node_utils::shutdown::CancellationToken;
#[derive(clap::Args)]
pub struct PrivacyOptions {
#[command(subcommand)]
pub(super) command: PrivacyCommand,
}
#[derive(clap::Subcommand)]
pub(super) enum PrivacyCommand {
Dkg(super::dkg::DkgOptions),
Record(RecordOptions),
}
#[derive(clap::Args)]
pub(super) struct RecordOptions {
#[command(subcommand)]
command: RecordCommand,
}
#[derive(clap::Subcommand)]
enum RecordCommand {
Export(super::PrivateRecordExportOptions),
IssueShare(super::PrivateRecordShareOptions),
Decrypt(super::PrivateRecordDecryptOptions),
}
impl PrivacyOptions {
pub(super) async fn handle(self, shutdown: CancellationToken) -> anyhow::Result<()> {
match self.command {
PrivacyCommand::Dkg(options) => options.handle(shutdown).await,
PrivacyCommand::Record(options) => match options.command {
RecordCommand::Export(options) => {
super::export_private_record::export(options).await
},
RecordCommand::IssueShare(options) => {
super::issue_private_record_share::issue_from_options(options)
},
RecordCommand::Decrypt(options) => {
super::decrypt_private_record::decrypt_from_options(options)
},
},
}
}
}