use super::*;
use crate::cli::context::Context;
use clap::Parser;
#[derive(Parser, Debug)]
pub struct LeoMempool {
#[arg(
long,
help = "Get the memory pool transactions",
default_value = "false",
required_unless_present = "transmissions",
conflicts_with("transmissions")
)]
pub(crate) transactions: bool,
#[arg(
long,
help = "Get the memory pool transmissions",
default_value = "false",
required_unless_present = "transactions",
conflicts_with("transactions")
)]
pub(crate) transmissions: bool,
}
impl Command for LeoMempool {
type Input = ();
type Output = String;
fn log_span(&self) -> Span {
tracing::span!(tracing::Level::INFO, "Leo")
}
fn prelude(&self, _context: Context) -> Result<Self::Input> {
Ok(())
}
fn apply(self, _context: Context, _input: Self::Input) -> Result<Self::Output> {
let url = if self.transactions {
"memoryPool/transactions".to_string()
} else if self.transmissions {
"memoryPool/transmissions".to_string()
} else {
unreachable!("All cases are covered")
};
Ok(url)
}
}