pub mod abi;
#[derive(Debug, Clone, interactive_clap::InteractiveClap)]
#[interactive_clap(input_context = crate::GlobalContext)]
#[interactive_clap(output_context = AbiCommandlContext)]
pub struct AbiCommand {
#[interactive_clap(long)]
pub no_doc: bool,
#[interactive_clap(long)]
pub compact_abi: bool,
#[interactive_clap(long)]
#[interactive_clap(skip_interactive_input)]
pub out_dir: Option<crate::types::utf8_path_buf::Utf8PathBuf>,
#[interactive_clap(long)]
#[interactive_clap(skip_interactive_input)]
pub manifest_path: Option<crate::types::utf8_path_buf::Utf8PathBuf>,
#[interactive_clap(long)]
#[interactive_clap(value_enum)]
#[interactive_clap(skip_interactive_input)]
pub color: Option<crate::common::ColorPreference>,
}
#[derive(Debug, Clone)]
pub struct AbiCommandlContext;
impl AbiCommandlContext {
pub fn from_previous_context(
_previous_context: crate::GlobalContext,
scope: &<AbiCommand as interactive_clap::ToInteractiveClapContextScope>::InteractiveClapContextScope,
) -> color_eyre::eyre::Result<Self> {
let args = AbiCommand {
no_doc: scope.no_doc,
compact_abi: scope.compact_abi,
out_dir: scope.out_dir.clone(),
manifest_path: scope.manifest_path.clone(),
color: scope.color.clone(),
};
self::abi::run(args)?;
Ok(Self)
}
}