yazi_parser/
arrow.rs

1use anyhow::bail;
2use mlua::{ExternalError, IntoLua, Lua, Value};
3use yazi_shared::event::CmdCow;
4
5use crate::Step;
6
7#[derive(Clone, Copy, Debug, Default)]
8pub struct ArrowOpt {
9	pub step: Step,
10}
11
12impl TryFrom<CmdCow> for ArrowOpt {
13	type Error = anyhow::Error;
14
15	fn try_from(c: CmdCow) -> Result<Self, Self::Error> {
16		let Ok(step) = c.first() else {
17			bail!("'step' is required for ArrowOpt");
18		};
19
20		Ok(Self { step })
21	}
22}
23
24impl From<isize> for ArrowOpt {
25	fn from(n: isize) -> Self { Self { step: n.into() } }
26}
27
28impl IntoLua for ArrowOpt {
29	fn into_lua(self, _: &Lua) -> mlua::Result<Value> { Err("unsupported".into_lua_err()) }
30}