Skip to content

Commit f06d002

Browse files
committed
Add test to emulate method through field
1 parent d399559 commit f06d002

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

tests/userdata.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,11 @@ fn test_fields() -> Result<()> {
525525
Ok(())
526526
});
527527

528+
// Field that emulates method
529+
fields.add_field_function_get("val_fget", |lua, ud| {
530+
lua.create_function(move |_, ()| Ok(ud.borrow::<MyUserData>()?.0))
531+
});
532+
528533
// Use userdata "uservalue" storage
529534
fields.add_field_function_get("uval", |_, ud| ud.user_value::<Option<String>>());
530535
fields.add_field_function_set("uval", |_, ud, s: Option<String>| ud.set_user_value(s));
@@ -537,6 +542,10 @@ fn test_fields() -> Result<()> {
537542
})
538543
})
539544
}
545+
546+
fn add_methods<M: UserDataMethods<Self>>(methods: &mut M) {
547+
methods.add_method("dummy", |_, _, ()| Ok(()));
548+
}
540549
}
541550

542551
globals.set("ud", MyUserData(7))?;
@@ -546,6 +555,7 @@ fn test_fields() -> Result<()> {
546555
assert(ud.val == 7)
547556
ud.val = 10
548557
assert(ud.val == 10)
558+
assert(ud:val_fget() == 10)
549559
550560
assert(ud.uval == nil)
551561
ud.uval = "hello"

0 commit comments

Comments
 (0)