strafe-client/lib/roblox_emulator/src/runner/macros.rs

25 lines
730 B
Rust
Raw Normal View History

2024-10-04 01:53:17 +00:00
macro_rules! type_from_lua_userdata{
($asd:ident)=>{
impl mlua::FromLua for $asd{
fn from_lua(value:mlua::Value,_lua:&mlua::Lua)->Result<Self,mlua::Error>{
2024-10-04 01:53:17 +00:00
match value{
mlua::Value::UserData(ud)=>Ok(*ud.borrow::<Self>()?),
2024-10-04 01:53:17 +00:00
other=>Err(mlua::Error::runtime(format!("Expected {} got {:?}",stringify!($asd),other))),
}
}
}
};
}
2024-10-05 00:33:59 +00:00
macro_rules! type_from_lua_userdata_lua_lifetime{
($asd:ident)=>{
impl mlua::FromLua for $asd<'static>{
fn from_lua(value:mlua::Value,_lua:&mlua::Lua)->Result<Self,mlua::Error>{
2024-10-05 00:33:59 +00:00
match value{
mlua::Value::UserData(ud)=>Ok(*ud.borrow::<Self>()?),
2024-10-05 00:33:59 +00:00
other=>Err(mlua::Error::runtime(format!("Expected {} got {:?}",stringify!($asd),other))),
}
}
}
};
}