hex_patch/app/
pane.rs

1use mlua::{FromLua, IntoLua};
2
3#[derive(Debug, Clone, Copy, PartialEq)]
4pub enum Pane {
5    Hex,
6    View,
7}
8
9impl IntoLua for Pane {
10    fn into_lua(self, lua: &mlua::Lua) -> mlua::Result<mlua::Value> {
11        Ok(mlua::Value::String(match self {
12            Pane::Hex => lua.create_string("hex").unwrap(),
13            Pane::View => lua.create_string("view").unwrap(),
14        }))
15    }
16}
17
18impl FromLua for Pane {
19    fn from_lua(value: mlua::Value, _lua: &mlua::Lua) -> mlua::Result<Self> {
20        let value = value.to_string()?;
21        match value.as_str() {
22            "hex" => Ok(Pane::Hex),
23            "view" => Ok(Pane::View),
24            _ => Err(mlua::Error::external("Invalid Pane")),
25        }
26    }
27}