Alex Orlenko
fac39a2f46
Drop openresty specific luajit extensions
2023-07-20 01:02:23 +01:00
Alex Orlenko
0e030d21b0
Add #[derive(FromLua)] macro to opt-in into FromLua<T> where T: 'static + Clone (userdata type).
...
Future macro implementations will allow making T from Lua tables/other values.
Relates to #291 .
2023-07-16 01:57:28 +01:00
Alex Orlenko
2277ee4860
Rename UserDataRegistrar to LuaUserDataRegistry
2023-07-11 22:15:15 +01:00
Alex Orlenko
128c357e07
Use __tostring if __name is not available when pretty printing userdata values
2023-07-11 21:36:02 +01:00
Alex Orlenko
9f0fc27c52
Make Lua::push_value() and Lua::pop_value() public (but hidden from the docs).
...
Can be useful for low-level intergration with mlua values.
Also closes #215 .
2023-07-11 20:03:41 +01:00
Alex Orlenko
bfd1c29c0a
Add back Table::raw_sequence_values() with deprecation notice
2023-07-11 16:02:28 +01:00
Alex Orlenko
5fca2db6d3
Revert Add error-send feature
2023-07-11 15:50:15 +01:00
Alex Orlenko
389526bb80
Some doc improvements
2023-07-11 00:28:24 +01:00
Alex Orlenko
4adc3116f9
Add error-send feature
2023-07-11 00:20:52 +01:00
Alex Orlenko
8e0bdc9934
Remove clippy::let_and_return ignore
2023-07-10 22:58:15 +01:00
Alex Orlenko
7dc6e4c132
Add Error::runtime() helper
2023-07-10 22:41:03 +01:00
Alex Orlenko
44b8c8b7a6
Add AnyUserData::wrap() to more easy way of creating _any_ userdata in Lua.
...
This is similar to `Function::wrap()`.
2023-07-10 16:36:38 +01:00
Alex Orlenko
6b8b79266f
Drop futures-timer dev-dependency
2023-07-10 01:16:27 +01:00
Alex Orlenko
44533d2c9d
Add new module attribule skip_memory_check to improve performance
...
in module mode (by skipping memory allocations check) with extra risks.
2023-07-10 00:43:19 +01:00
Alex Orlenko
c38a1f060b
Various cosmetic changes
2023-07-10 00:04:40 +01:00
Alex Orlenko
5dca743b0c
Improve performance AnyUserData::{is_serializable/inspect/serialize}
2023-07-10 00:01:26 +01:00
Alex Orlenko
01c1952c9f
Rename AnyUserData::get_*_user_value to AnyUserData::*_user_value.
...
To be more consistent with function like `Lua::named_registry_value`, `Lua::add_data_ref` and os on.
2023-07-09 23:50:44 +01:00
Alex Orlenko
dbc3dd95d4
Fix Luau vector4 formatting when throwing it in exception
2023-07-09 23:14:49 +01:00
Alex Orlenko
a9b0cdfc03
Take &str as function name in TableExt and AnyUserDataExt traits
2023-07-09 22:49:16 +01:00
Alex Orlenko
1c20494158
Use usize instead of c_int for table capacity (Lua::create_table_with_capacity)
2023-07-09 22:11:26 +01:00
Alex Orlenko
c9294ad642
Add #[must_use] hint and const to some Luau Compiler functions
2023-07-09 14:13:06 +01:00
Alex Orlenko
3a71bfb8a0
Refactor Lua 5.4 warnings to use &str instead of CStr
2023-07-09 14:13:05 +01:00
Alex Orlenko
24e14c4874
Always set hook on a current Lua context (state) and remove MainThreadNotAvailable as no longer needed
2023-07-09 12:33:21 +01:00
Alex Orlenko
20826a69ae
Re-export ffi crate (mlua-sys)
2023-07-09 11:31:59 +01:00
Alex Orlenko
5127903c38
Remove generic type parameter from init_userdata_metatable
2023-07-08 17:00:46 +01:00
Alex Orlenko
541139b944
Change Lua ref types Debug print from Ref{index} to Ref{pointer}
...
The index is always uniq per instance, but pointer can exactly tell when
several values reference to the same Lua internal value.
2023-07-08 12:52:14 +01:00
Alex Orlenko
925a2816cc
clippy
2023-07-06 00:59:46 +01:00
Alex Orlenko
b3b8d79446
Make Debug interface more user friendly
...
- use String instead of Vec<u8>
- update docs
- unify fields between lua5.x/luau
- line numbers are `usize`
2023-07-06 00:38:33 +01:00
Alex Orlenko
85f17a269d
Add Table:is_empty() function
2023-06-26 10:50:18 +01:00
Alex Orlenko
b169031d4e
Don't use any metamethods in Table::sequence_values() iterator.
...
This is matches with `Table::pair()` iterator.
Remove `Table::raw_sequence_values()` iterator.
2023-06-26 10:46:59 +01:00
Alex Orlenko
1367a033d7
Don't clone function when doing call_async()
2023-06-21 13:14:17 +01:00
Alex Orlenko
c1168d3ec1
Refactor call_async() functions to use static dispatch outside of traits
2023-06-21 12:44:24 +01:00
Alex Orlenko
b05698d55b
impl UserData for Rc<T> and Arc<T> where T: UserData
2023-06-21 01:30:09 +01:00
Alex Orlenko
1f0e81c9a1
Add a dedicated type for Luau vector.
...
Refactor existing implementation and add 4-dimensional vectors support.
2023-06-20 13:30:42 +01:00
Alex Orlenko
c2bfc9ec52
Implement PartialEq<[T]> for tables
2023-06-19 23:28:08 +01:00
Alex Orlenko
9fdba541e9
Update UserDataMethods::add_async_method() functions to take &T as second argument instead of cloning T.
...
New functions: `UserDataMethods::add_async_method_mut()`, `UserDataMethods::add_async_meta_method_mut()`.
2023-06-15 00:34:41 +01:00
Alex Orlenko
cf0524aa23
Use lua_iscfunction instead of lua_getinfo in Function::environment()
2023-06-08 09:33:48 +01:00
Alex Orlenko
16bec29274
Fix setting Luau version number in _VERSION env var
2023-06-07 12:35:45 +01:00
Alex Orlenko
5a135a331a
Add UserDataFields::add_field() method to add static fields to UserData.
...
Plus `UserDataFields::add_meta_field()` for static meta fields.
Fix propagating fields to wrapped UserData types.
2023-06-07 12:18:24 +01:00
Alex Orlenko
e7b712e29f
Rely on LUA_MINSTACK in callbacks
2023-06-06 21:38:45 +01:00
Alex Orlenko
d5483988d2
Optimize polling async functions (40% performance win)
2023-06-04 20:53:12 +01:00
Alex Orlenko
8ab0ccf11c
Don't keep poll function in environment globals when polling async functions.
...
This is redundant after deprecating scoped async.
Closes #281
2023-06-04 02:31:29 +01:00
Alex Orlenko
9596f2e9ee
Fix warning when compiling for lua51
2023-06-03 14:24:34 +01:00
Alex Orlenko
1dc32452e6
Support getting and setting environment for Lua functions.
...
Closes #218
2023-06-03 12:56:49 +01:00
Alex Orlenko
9785722d61
Require environment to be a Table instead of Value in Chunks.
...
In addition to that, `AsChunk::env()` renamed to `AsChunk::environment()`.
2023-06-03 00:00:53 +01:00
Alex Orlenko
c905a34b1d
(Luau) Set thread globals to main thread globals when resetting the thread
2023-06-02 21:13:23 +01:00
Alex Orlenko
a1089dbf95
Optimize a bit calling Rust functions from Lua.
...
This is done by reusing upvalue as a captured variable.
Also in async functions upvalue is always set (async cannot be scoped) so extra checks removed.
2023-05-30 15:15:20 +01:00
Alex Orlenko
baf25e263f
Change _mlua to __mlua prefix for internal chunk names
2023-05-30 00:36:09 +01:00
Alex Orlenko
3abf73dee5
Update FunctionInfo doc and interface
2023-05-30 00:33:57 +01:00
Alex Orlenko
cea2d7fd15
Refactor application data container.
...
Now it's allowed at the same time mutably and immutably borrow different types.
Each value in the application data container is stored in it's own `RefCell` wrapper.
Also added new function `Lua::try_set_app_data()`.
2023-05-29 00:30:31 +01:00