Alex Orlenko
08545224f4
clippy
2024-10-19 11:49:40 +01:00
Alex Orlenko
02d4ceff34
Make Thread::state non-const (private api)
2024-10-18 21:50:57 +01:00
Alex Orlenko
9f6c78532f
Move IntoLua/FromLua and IntoLuaMulti/FromLuaMulti to traits module
2024-10-07 10:32:50 +01:00
Alex Orlenko
4ac87c7208
Derive PartialEq instead of implementing manually
2024-10-02 12:21:04 +01:00
Alex Orlenko
7839c4438c
Fix compilation warnings
2024-10-01 22:28:47 +01:00
Alex Orlenko
ca69be07ff
Support setting metatable for Lua builtin types.
...
Closes #445
2024-09-23 10:45:57 +01:00
Alex Orlenko
fc1570d2d7
Support yielding from hooks for Lua 5.3+
2024-09-22 19:04:32 +01:00
Alex Orlenko
fce85381c6
Fix clippy warnings
2024-09-22 19:02:16 +01:00
Alex Orlenko
2857cb76c6
Add A param to AsyncThread<A, R>.
...
This reduces internal dependency on `MultiValue` container and delay args conversion to the future `poll()` stage.
2024-08-23 01:04:06 +01:00
Alex Orlenko
8092f00930
Do not require Lua to be alive when dropping AsyncThread
2024-08-22 23:41:51 +01:00
Alex Orlenko
d2e87943ac
Skip extra lock when resuming thread
2024-08-22 23:41:50 +01:00
Alex Orlenko
c58f67b140
Add MaybeSend requirement to Lua futures
2024-08-10 17:55:39 +01:00
Alex Orlenko
3641c98959
Prepare for Rust 2024 edition (see rust-lang/rust#123748 )
...
Replace `IntoLua(Multi)` generic with positional arg (impl trait) where possible
This allow to shorten syntax from `a.get::<_, T>` to `a.get::<T>`
2024-07-31 23:42:43 +01:00
Alex Orlenko
b7d170ab9b
Refactor ThreadStatus:
...
- Add `ThreadStatus::Running`
- Replace `ThreadStatus::Unresumable` with `ThreadStatus::Finished`
Change `Error::CoroutineInactive` to `Error::CoroutineUnresumable`
2024-07-31 22:34:45 +01:00
Alex Orlenko
833790967b
Update async examples (use send feature)
2024-07-31 13:42:39 +01:00
Alex Orlenko
b4892c228c
Add rustfmt.toml
2024-07-31 13:42:37 +01:00
Alex Orlenko
658f2a13ea
Support multi threads under send feature flag
2024-07-31 13:42:37 +01:00
Alex Orlenko
cd6d86a5ce
Split single lua module to multiple submodules under state
2024-07-31 13:42:37 +01:00
Alex Orlenko
7221051683
Refactor:
...
- Remove the rest of `'lua` lifetimes
- Remove Owned types
2024-07-31 13:42:35 +01:00
Alex Orlenko
1eb2ecb3b0
Drop lifetime from IntoLua
2024-07-31 13:42:35 +01:00
Alex Orlenko
24b0672d99
Rename LuaRef to ValueRef
2024-07-31 13:42:35 +01:00
Alex Orlenko
a25e81036e
Do not allow already running coroutines to be reset or resumed.
...
This is a wrong use of the Lua API and is not supported.
See #416 for the reference.
2024-06-12 23:18:46 +01:00
Alex Orlenko
908f37656a
Add to_pointer function to Function/Table/Thread
2024-02-02 09:23:16 +00:00
Alex Orlenko
3c801e7b17
Expose internal POLL_PENDING constant (hidden)
2024-01-20 15:52:00 +00:00
Alex Orlenko
4c0474d573
Fix docsrs attr for Thread::reset
2024-01-06 15:04:18 +00:00
Alex Orlenko
d48a2b3f6c
Add OwnedThread type (unstable)
2023-08-12 21:18:12 +01:00
Alex Orlenko
cd0c8a4584
Optimize async functionality:
...
Rewrite using the new `push_into_stack()`/`from_stack()` methods.
Also store thread state (pointer) in `Thread` struct to avoid getting it every time.
Async userdata methods still need to have arguments stored in ref thread as stack is empty on every poll().
2023-08-03 00:56:17 +01:00
Alex Orlenko
fac39a2f46
Drop openresty specific luajit extensions
2023-07-20 01:02:23 +01:00
Alex Orlenko
c38a1f060b
Various cosmetic changes
2023-07-10 00:04:40 +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
e0224ab159
Use futures-core and futures-tasks via futures-util.
...
Just to reduce number of dependencies.
2023-05-29 00:30:29 +01:00
Alex Orlenko
6dee339783
Use lua_closethread in AsyncThread::drop()
2023-05-28 01:43:15 +01:00
Alex Orlenko
1c66a02878
Update to Lua 5.4.6
2023-05-21 00:55:06 +01:00
Alex Orlenko
aaf0a5e44a
Remove usage of crate::ffi (clippy)
2023-04-14 00:36:31 +01:00
Alex Orlenko
3e83753466
Add Thread::set_hook() function
2023-04-08 23:53:48 +01:00
Alex Orlenko
483bc80fc4
Add must_use to AsyncThread
2023-04-05 00:23:13 +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
d7db1b7f2e
Add Waker lifetime to WakerGuard
2023-03-03 18:29:04 +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
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
Alex Orlenko
9b4e3a1598
Refactor LuaInner state
...
Add static_assertions to check for auto traits impl on compilation stage
Bump MSRV to 1.63 (required for `Ref::filter_map`)
2022-12-19 16:09:05 +00:00
Alex Orlenko
bf79d9e75d
Initial implementation of owned Lua types
2022-12-18 00:35:41 +00:00
Alex Orlenko
fcd162f3eb
Replace Lua::ref_thread_exec
2022-10-22 23:39:49 +01:00
Alex Orlenko
0cd724f63b
Fix Lua assertion when inspecting another thread stack.
...
The thread can be dead and it's not safe to call __tostring metamethod (if present) on error object.
Fixes #195
2022-08-01 22:07:39 +01:00
Alex Orlenko
ab029b087d
Close to-be-closed variables for Lua 5.4 when using call_async functions
...
Fixes #192
2022-07-31 15:33:02 +01:00
Alex Orlenko
86f506a170
Fix clippy warnings
2022-04-14 21:55:36 +01:00
Alex Orlenko
d1c80be033
Don't cast *const to *mut (for pointers comparison)
2022-04-08 22:52:55 +01:00
Alex Orlenko
55fac90a74
Fix Luau documentation in docs.rs
...
Enable `Lua::gc_inc` for Luau
Mark `debug` module as safe for Luau
2022-04-08 20:02:12 +01:00
Alex Orlenko
0ea65a2985
Fix doc test
2022-04-03 22:13:54 +01:00