summaryrefslogtreecommitdiff
path: root/src/config/theme/colorpair.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/theme/colorpair.rs')
-rw-r--r--src/config/theme/colorpair.rs106
1 files changed, 0 insertions, 106 deletions
diff --git a/src/config/theme/colorpair.rs b/src/config/theme/colorpair.rs
deleted file mode 100644
index 77e6af4..0000000
--- a/src/config/theme/colorpair.rs
+++ /dev/null
@@ -1,106 +0,0 @@
-use std::str::FromStr;
-
-use mlua::{FromLua, IntoLua};
-use ratatui::style::{Color, Styled, Stylize};
-
-#[derive(Clone)]
-pub struct ColorPair {
- pub fg: Color,
- pub bg: Color,
-}
-
-impl ColorPair {
- pub const fn new(fg: Color, bg: Color) -> Self {
- ColorPair { bg, fg }
- }
-
- pub fn apply<S, I>(&self, s: S) -> <I as Styled>::Item
- where
- S: Styled<Item = I>,
- I: Styled,
- {
- s.bg(self.bg).fg(self.fg)
- }
-}
-
-impl<'lua> FromLua<'lua> for ColorPair {
- fn from_lua(
- value: mlua::prelude::LuaValue<'lua>,
- _lua: &'lua mlua::prelude::Lua,
- ) -> mlua::prelude::LuaResult<Self> {
- if value.is_table() {
- let table = value.as_table().unwrap();
- if let Ok(fg) = table.get::<_, LuaColor>(1) {
- if let Ok(bg) = table.get::<_, LuaColor>(2) {
- return Ok(ColorPair::new(fg.into(), bg.into()));
- }
- } else if let Ok(fg) = table.get::<_, LuaColor>("fg") {
- if let Ok(bg) = table.get::<_, LuaColor>("bg") {
- return Ok(ColorPair::new(fg.into(), bg.into()));
- }
- }
- }
-
- return Err(mlua::Error::runtime("could not parse colorpair"));
- }
-}
-
-impl<'lua> IntoLua<'lua> for ColorPair {
- fn into_lua(
- self,
- lua: &'lua mlua::prelude::Lua,
- ) -> mlua::prelude::LuaResult<mlua::prelude::LuaValue<'lua>> {
- let table = lua.create_table()?;
- table.set("fg", LuaColor::from(self.fg))?;
- table.set("bg", LuaColor::from(self.bg))?;
- Ok(table.into_lua(lua)?)
- }
-}
-
-struct LuaColor {
- color: Color,
-}
-
-impl LuaColor {
- fn new(color: Color) -> Self {
- Self { color }
- }
-}
-
-impl From<Color> for LuaColor {
- fn from(value: Color) -> Self {
- LuaColor::new(value)
- }
-}
-
-impl Into<Color> for LuaColor {
- fn into(self) -> Color {
- self.color
- }
-}
-
-impl<'lua> FromLua<'lua> for LuaColor {
- fn from_lua(
- value: mlua::prelude::LuaValue<'lua>,
- _lua: &'lua mlua::prelude::Lua,
- ) -> mlua::prelude::LuaResult<Self> {
- if value.is_string() {
- let str = value.as_str().unwrap();
- match Color::from_str(str) {
- Ok(color) => Ok(color.into()),
- Err(_) => Err(mlua::Error::runtime("color has wrong format")),
- }
- } else {
- Err(mlua::Error::runtime("color has wrong format"))
- }
- }
-}
-
-impl<'lua> IntoLua<'lua> for LuaColor {
- fn into_lua(
- self,
- lua: &'lua mlua::prelude::Lua,
- ) -> mlua::prelude::LuaResult<mlua::prelude::LuaValue<'lua>> {
- Ok(self.color.to_string().to_lowercase().into_lua(lua)?)
- }
-}