From fac3336c9114afe8f948e314000dbddab8449a81 Mon Sep 17 00:00:00 2001 From: OliverGuy Date: Mon, 18 May 2026 19:55:42 +0200 Subject: [PATCH] refactor(history): deserialize --- yazi-widgets/src/input/parser/history.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/yazi-widgets/src/input/parser/history.rs b/yazi-widgets/src/input/parser/history.rs index 2b37c01a..d1e35df0 100644 --- a/yazi-widgets/src/input/parser/history.rs +++ b/yazi-widgets/src/input/parser/history.rs @@ -1,14 +1,18 @@ use mlua::{ExternalError, FromLua, IntoLua, Lua, Value}; +use serde::Deserialize; use yazi_shared::event::ActionCow; -#[derive(Debug)] +#[derive(Debug, Deserialize)] pub struct HistoryOpt { + #[serde(alias = "0", default)] pub offset: i64, } -impl From for HistoryOpt { - fn from(a: ActionCow) -> Self { - Self { offset: a.str(0).parse().unwrap_or(0) } +impl TryFrom for HistoryOpt { + type Error = anyhow::Error; + + fn try_from(a: ActionCow) -> Result { + Ok(a.deserialize()?) } }