use super::*;
use crate::cli::context::Context;
use clap::Parser;
#[derive(Parser, Debug)]
pub struct LeoPeers {
#[arg(short, long, help = "Get all peer metrics", default_value = "false", conflicts_with("count"))]
pub(crate) metrics: bool,
#[arg(
short,
long,
help = "Get the count of all participating peers",
default_value = "false",
conflicts_with("metrics")
)]
pub(crate) count: bool,
}
impl Command for LeoPeers {
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.metrics {
"peers/all/metrics".to_string()
} else if self.count {
"peers/count".to_string()
} else {
"peers/all".to_string()
};
Ok(url)
}
}