use anyhow::bail; use mlua::{ExternalError, IntoLua, Lua, Value}; use yazi_shared::event::ActionCow; use yazi_widgets::Step; #[derive(Clone, Copy, Debug, Default)] pub struct ArrowOpt { pub step: Step, } impl TryFrom for ArrowOpt { type Error = anyhow::Error; fn try_from(a: ActionCow) -> Result { let Ok(step) = a.first() else { bail!("Invalid 'step' in ArrowOpt"); }; Ok(Self { step }) } } impl From for ArrowOpt { fn from(n: isize) -> Self { Self { step: n.into() } } } impl IntoLua for ArrowOpt { fn into_lua(self, _: &Lua) -> mlua::Result { Err("unsupported".into_lua_err()) } }