Compare commits

...

2 Commits

Author SHA1 Message Date
bf0c4f74c3 error instead of print, expanded message 2024-10-05 22:36:46 -07:00
97e2010826 split type onto multiple lines 2024-10-05 22:36:46 -07:00

View File

@ -248,7 +248,7 @@ impl mlua::UserData for Instance{
Some(&rbx_types::Variant::CFrame(cf))=>return Into::<super::cframe::CFrame>::into(cf).into_lua(lua),
Some(&rbx_types::Variant::Vector3(v))=>return Into::<super::vector3::Vector3>::into(v).into_lua(lua),
None=>(),
other=>println!("instance.properties.get(i)={other:?}"),
other=>return Err(mlua::Error::runtime(format!("Instance.__index Unsupported property type instance={} index={index_str} value={other:?}",instance.name))),
}
//find a function with a matching name
if let Some(function)=class_functions_mut(lua,|cf|{
@ -345,7 +345,12 @@ type ClassFunctionPointer=fn(&mlua::Lua,mlua::MultiValue)->mlua::Result<mlua::Mu
// TODO: use macros to define these with better organization
/// A double hash map of function pointers.
/// The class tree is walked by the Instance.__index metamethod to find available class methods.
static CLASS_FUNCTION_DATABASE:phf::Map<&str,phf::Map<&str,ClassFunctionPointer>>=phf::phf_map!{
type CFD=phf::Map<&'static str,// Class name
phf::Map<&'static str,// Method name
ClassFunctionPointer
>
>;
static CLASS_FUNCTION_DATABASE:CFD=phf::phf_map!{
"DataModel"=>phf::phf_map!{
"GetService"=>cf!(|lua,_this,service:mlua::String|{
dom_mut(lua,|dom|{
@ -374,7 +379,7 @@ static CLASS_FUNCTION_DATABASE:phf::Map<&str,phf::Map<&str,ClassFunctionPointer>
#[derive(Default)]
struct ClassFunctions{
classes:HashMap<&'static str,//ClassName
HashMap<&'static str,//Function name
HashMap<&'static str,//Method name
mlua::Function
>
>