This commit is contained in:
sxyazi 2024-09-12 18:15:02 +08:00
parent b78bf6cc8d
commit cf7fd2f615
No known key found for this signature in database
2 changed files with 5 additions and 13 deletions

View file

@ -2,6 +2,7 @@ use mlua::{AnyUserData, ExternalError, Lua, Table, UserData, UserDataMethods, Va
use ratatui::widgets::Widget;
use super::{RectRef, Renderable, Span};
use crate::elements::Style;
#[derive(Clone, Default)]
pub struct Gauge {
@ -50,12 +51,7 @@ impl UserData for Gauge {
});
methods.add_function("gauge_style", |_, (ud, value): (AnyUserData, Value)| {
ud.borrow_mut::<Self>()?.gauge_style = match value {
Value::Nil => ratatui::style::Style::default(),
Value::Table(tb) => crate::elements::Style::try_from(tb)?.0,
Value::UserData(ud) => ud.borrow::<crate::elements::Style>()?.0,
_ => return Err("expected a Style or Table or nil".into_lua_err()),
};
ud.borrow_mut::<Self>()?.gauge_style = Style::try_from(value)?.0;
Ok(ud)
});
}

View file

@ -40,8 +40,8 @@ impl<'a> TryFrom<Value<'a>> for Style {
fn try_from(value: Value<'a>) -> Result<Self, Self::Error> {
Ok(Self(match value {
Value::Nil => Default::default(),
Value::Table(tb) => Style::try_from(tb)?.0,
Value::UserData(ud) => ud.borrow::<Style>()?.0,
Value::Table(tb) => Self::try_from(tb)?.0,
Value::UserData(ud) => ud.borrow::<Self>()?.0,
_ => Err("expected a Style or Table or nil".into_lua_err())?,
}))
}
@ -58,11 +58,7 @@ impl UserData for Style {
methods.add_function("patch", |_, (ud, value): (AnyUserData, Value)| {
{
let mut me = ud.borrow_mut::<Self>()?;
me.0 = me.0.patch(match value {
Value::Table(tb) => Style::try_from(tb)?.0,
Value::UserData(ud) => ud.borrow::<Style>()?.0,
_ => return Err("expected a Style or Table".into_lua_err()),
});
me.0 = me.0.patch(Self::try_from(value)?.0);
}
Ok(ud)
})