diff --git a/src/roblox/datatypes/types/color3.rs b/src/roblox/datatypes/types/color3.rs index 8bf5cc7..135f409 100644 --- a/src/roblox/datatypes/types/color3.rs +++ b/src/roblox/datatypes/types/color3.rs @@ -108,6 +108,20 @@ impl LuaExportsTable<'_> for Color3 { } } +impl<'lua> FromLua<'lua> for Color3 { + fn from_lua(value: LuaValue<'lua>, _: &'lua Lua) -> LuaResult { + if let LuaValue::UserData(ud) = value { + Ok(*ud.borrow::()?) + } else { + Err(LuaError::FromLuaConversionError { + from: value.type_name(), + to: "userdata", + message: None, + }) + } + } +} + impl LuaUserData for Color3 { fn add_fields<'lua, F: LuaUserDataFields<'lua, Self>>(fields: &mut F) { fields.add_field_method_get("R", |_, this| Ok(this.r)); diff --git a/src/roblox/datatypes/types/enum_item.rs b/src/roblox/datatypes/types/enum_item.rs index 1eb1c49..c1036a0 100644 --- a/src/roblox/datatypes/types/enum_item.rs +++ b/src/roblox/datatypes/types/enum_item.rs @@ -74,6 +74,20 @@ impl LuaUserData for EnumItem { } } +impl<'lua> FromLua<'lua> for EnumItem { + fn from_lua(value: LuaValue<'lua>, _: &'lua Lua) -> LuaResult { + if let LuaValue::UserData(ud) = value { + Ok(ud.borrow::()?.to_owned()) + } else { + Err(LuaError::FromLuaConversionError { + from: value.type_name(), + to: "userdata", + message: None, + }) + } + } +} + impl fmt::Display for EnumItem { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}.{}", self.parent, self.name)