use anyhow::Result;
use crate::cli::parse_distance;
use crate::commands::Run;
#[derive(Debug, clap::Args)]
pub struct Down {
#[arg(value_name = "COUNT", value_parser = parse_distance, allow_negative_numbers = true)]
count: Option<usize>,
#[arg(long)]
from_path: bool,
}
impl Run for Down {
fn run(self) -> Result<()> {
crate::stack::checkout_parent(self.count.unwrap_or(1), self.nav_output())
}
}
impl Down {
fn nav_output(&self) -> crate::stack::NavOutput {
if self.from_path {
crate::stack::NavOutput::Path
} else {
crate::stack::NavOutput::Announce
}
}
}