Alex Orlenko
15dc0e9f23
Move ffi module into mlua-sys crate
2023-04-12 23:23:34 +01:00
Alex Orlenko
cdbf04f50c
Add pretty-print to the Debug formatting to Value to Table.
...
This would allow dumping any Lua variable in human readable form.
2023-04-11 20:36:41 +01:00
Alex Orlenko
ba324b4f54
Allow deserializing Lua null into unit(()) or unit struct. See #264
2023-04-10 01:49:51 +01:00
Alex Orlenko
3e83753466
Add Thread::set_hook() function
2023-04-08 23:53:48 +01:00
Alex Orlenko
288934c82c
Refactor HookTriggers (make it const)
2023-04-05 01:02:27 +01:00
Alex Orlenko
483bc80fc4
Add must_use to AsyncThread
2023-04-05 00:23:13 +01:00
Alex Orlenko
6fa0a78ec0
Prepare v0.9.0-beta.1
2023-03-30 23:18:10 +01:00
Alex Orlenko
f66932e8d2
Revert "Rename Owned*::to_ref() to as_ref()"
...
This reverts commit 5394faca16 .
2023-03-30 22:35:43 +01:00
Alex Orlenko
1be927bc5d
Don't call error handler for memory errors in coroutines
2023-03-30 17:29:57 +01:00
Alex Orlenko
e182d474e0
More user-friendly error message about missing value for name attribute in module macro
...
Update the `[lua_module]` doc
2023-03-28 16:27:16 +01:00
Alex Orlenko
cd9fc1d08f
Update Error doc
2023-03-26 20:58:43 +01:00
Alex Orlenko
d9aac08b81
Support setting memory limit for Lua 5.1/JIT/Luau
...
Other versions already support this feature.
Closes #119
2023-03-26 00:06:52 +00:00
Alex Orlenko
9c1669020b
Clippy
2023-03-25 23:38:57 +00:00
Alex Orlenko
742307a267
Add &Lua to luau interrupt callback ( fixes #197 )
2023-03-25 16:30:31 +00:00
Alex Orlenko
781ded573a
Seal LuaSerdeExt/TableExt/AnyUserDataExt
2023-03-19 02:38:21 +00:00
Alex Orlenko
6a647f58be
Add Error::downcast_ref() method
2023-03-19 00:22:51 +00:00
Alex Orlenko
8d80321738
Add ErrorContext extension trait to attach additional context to Error
2023-03-17 01:20:57 +00:00
Alex Orlenko
a0d37fd182
Rename error to cause in Error::BadArgument
2023-03-16 23:48:54 +00:00
Alex Orlenko
03787668fd
Improve error reporting when calling Rust functions from Lua.
...
In particular new error type `Error::BadArgument` added to help identify bad argument position or name (eg `self` for userdata).
2023-03-14 23:23:46 +00:00
Alex Orlenko
3059f82552
Update README and CHANGELOG
2023-03-12 23:54:19 +00:00
Alex Orlenko
304880bfd1
Fast metatable check for Lua::push_userdata_ref
2023-03-10 10:34:41 +00:00
Alex Orlenko
33c276d0b4
Optimize userdata methods call when __index and fields_getters are nil
2023-03-04 11:58:34 +00:00
Alex Orlenko
d7db1b7f2e
Add Waker lifetime to WakerGuard
2023-03-03 18:29:04 +00:00
Alex Orlenko
22c973af02
Async: Don't clone function when executing it from recycled thread
2023-03-03 18:22:39 +00:00
Alex Orlenko
8c18fa1764
Async: store pointer to Waker in extra data rather than in Lua ref thread
2023-03-03 15:19:54 +00:00
Alex Orlenko
5394faca16
Rename Owned*::to_ref() to as_ref()
2023-03-02 15:36:11 +00:00
Alex Orlenko
4a3f6d60ad
Update exports in libs and prelude
2023-03-02 15:34:42 +00:00
Alex Orlenko
68b60e2a0a
Add UserDataRef and UserDataRefMut types that implement FromLua
...
and can be used as accessors to underlying `AnyUserData` type.
2023-02-26 21:52:28 +00:00
Alex Orlenko
888bd77e60
Add AnyUserDataExt to prelude
2023-02-25 23:59:29 +00:00
Alex Orlenko
949906f9f7
Fix potential deadlock when trying to reuse dropped RegistryKey.
...
If no free registry id found, we call protect_lua! macro while keeping mutex guard to the unref list.
Protected calls can trigger garbage collection and if RegistryKey is placed in userdata being collected, this can lead to deadlock.
The solution is drop mutex guard as soon as possible.
Also this commit includes optimization in creating reference in Lua registry.
2023-02-22 20:15:40 +00:00
Alex Orlenko
94f01e597c
Add AnyUserDataExt trait with auxiliary functions for AnyUserData
2023-02-18 23:40:28 +00:00
Alex Orlenko
b8e3290f35
Update LuaRef/LuaOwnedRef
...
Move content of `Lua::make_owned_ref` into `LuaRef::into_owned`
Add crate-visible `Lua::clone` function (not trait)
2023-02-15 09:20:03 +00:00
Alex Orlenko
03ab828342
Return evicted value to Lua::set_app_data if it's already present.
...
Add "Panics" section to `Lua::*_app_data` docs.
2023-02-12 23:38:09 +00:00
Alex Orlenko
b66bff9155
Drop Lua::async_scope as it's unsound
2023-02-12 22:25:10 +00:00
Alex Orlenko
f52abf919e
Add create_userdata_ref/create_userdata_ref_mut for scope ( #206 )
...
New methods would allow creating userdata objects from (mutable) reference
to a UserData of registered type.
2023-02-12 16:37:02 +00:00
Alex Orlenko
b790b525c1
Fix clippy warnings
2023-02-07 22:43:48 +00:00
Alex Orlenko
f5182e0584
Force protected mode for long enough strings
2023-02-06 23:46:31 +00:00
Alex Orlenko
47c8300ccf
Allow registering and creating custom userdata types that don't necessary implement the UserData trait.
...
This is useful to register 3rd party types that cannot implement `UserData` due to Rust orphan rules.
See #206
2023-02-03 23:46:04 +00:00
Alex Orlenko
8339621f9c
Rename to_lua_err -> into_lua_err
2023-01-06 21:35:15 +00:00
Alex Orlenko
16cbb442e5
Fix clippy warnings
2023-01-06 20:50:29 +00:00
Alex Orlenko
88da28a68d
Allow deserializing values from serializable UserData using Lua::from_value() method.
...
Closes #240
2023-01-06 10:41:17 +00:00
Alex Orlenko
cb3d58b1c7
Better Debug for String
2023-01-04 15:56:57 +00:00
Alex Orlenko
fa46720f5a
Add Table::clear() method
2023-01-02 15:50:21 +00:00
Alex Orlenko
72b9209ae9
Rename wrapped_failure/thread cache to pool
2022-12-30 21:48:12 +00:00
Alex Orlenko
0cb7058476
Rename MultiValue cache to pool
2022-12-30 14:50:39 +00:00
Alex Orlenko
d67332a3ac
Refactor userdata::MetaMethod.
...
Take `impl AsRef<str>` as name of metamethod (instead of `Into<MetaMethod>`) in UserDataMethods/UserDataFields.
Change position of generic args in userdata.
2022-12-24 19:16:58 +00:00
Alex Orlenko
1d4a135e8e
Add Function::wrap/Function::wrap_mut/Function::wrap_async to wrap functions into a type that implements IntoLua trait.
...
This is useful to avoid calling `lua.create_function*` every time when `Function` handle is needed.
2022-12-22 16:24:35 +00:00
Alex Orlenko
61c285746c
Remove FromLua impl for UserData+Clone
2022-12-20 23:30:18 +00:00
Alex Orlenko
a13c188de3
Rename ToLua/ToLuaMulti -> IntoLua/IntoLuaMulti
2022-12-19 23:00:47 +00:00
Alex Orlenko
c60f633a62
Add "unstable" feature flag.
...
Hide owned types under the new feature flag.
Drop OwnedString/OwnedThread types (unlikely they are useful).
2022-12-19 22:26:44 +00:00