Alex Orlenko
5fca2db6d3
Revert Add error-send feature
2023-07-11 15:50:15 +01:00
Alex Orlenko
4adc3116f9
Add error-send feature
2023-07-11 00:20:52 +01:00
Alex Orlenko
7dc6e4c132
Add Error::runtime() helper
2023-07-10 22:41:03 +01:00
Alex Orlenko
c38a1f060b
Various cosmetic changes
2023-07-10 00:04:40 +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
b05698d55b
impl UserData for Rc<T> and Arc<T> where T: UserData
2023-06-21 01:30:09 +01:00
Alex Orlenko
1ac98e7d16
- Allow downcasting error wrapped into Error::WithContext
...
- Overwrite error context when called multiple times
2023-05-08 23:39:53 +01:00
Alex Orlenko
cd9fc1d08f
Update Error doc
2023-03-26 20:58:43 +01: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
b790b525c1
Fix clippy warnings
2023-02-07 22:43:48 +00:00
Alex Orlenko
8339621f9c
Rename to_lua_err -> into_lua_err
2023-01-06 21:35:15 +00:00
Alex Orlenko
a13c188de3
Rename ToLua/ToLuaMulti -> IntoLua/IntoLuaMulti
2022-12-19 23:00:47 +00:00
Alex Orlenko
ec1fa04085
Update docs
2022-03-25 00:43:54 +00:00
Alex Orlenko
2ea2b1f4fb
Refactor Error::CallbackError reporting and include source to
...
fmt::Display implementation.
This fixes #71 .
2021-11-07 22:53:37 +00:00
Alex Orlenko
ed48b11e7f
Update documentation references
...
Using rustdoc links (see RFC https://github.com/rust-lang/rfcs/pull/1946 )
2021-10-12 00:49:45 +01:00
Alex Orlenko
bf286751fa
Improve code coverage
2021-06-17 00:47:15 +01:00
Alex Orlenko
bae424672a
Treat errors as Send + Sync to be compatible with anyhow crate
2021-05-31 11:05:51 +01:00
Alex Orlenko
0bad4a0ff9
Fix spelling
2021-05-10 19:53:38 +01:00
Alex Orlenko
35b7504076
Improve error reporting in module mode.
...
Attach traceback to a WrappedError.
Fixes #44 .
2021-05-10 17:45:00 +01:00
Alex Orlenko
2250421438
Fix clippy warnings
2021-05-04 23:42:33 +01:00
Alex Orlenko
2b2df708f9
Add UserDataFields API.
...
Provide safe access to UserData metatable and allow to define custom metamethods..
2021-04-27 00:29:37 +01:00
Alex Orlenko
0bd36b42e7
Make error::Error non_exhaustive
2021-04-16 22:10:10 +01:00
Alex Orlenko
b9589491e4
Improve panic handling (check for twice resumed panics)
2021-04-15 23:04:36 +01:00
Alex Orlenko
9f82cbe0c5
Update documentation
2020-12-31 13:39:38 +00:00
Alex Orlenko
6e2b687cb7
Serde support (serialize feature flag)
2020-12-14 00:51:26 +00:00
Alex Orlenko
3d42bc4ca6
Refactor main_state handling
...
Don't allow to set hook if main_state is not available
Remove Lua 5.1 dirty hack
2020-06-07 20:38:19 +01:00
Alex Orlenko
5a9a308790
Provide safe and unsafe Lua modes:
...
- In safe mode Lua would not have ability to load C code via `require` or `package.loadlib`
- Unsafe mode allows everything.
2020-05-12 02:14:48 +01:00
Alex Orlenko
1b2b94c808
Use Rust allocator for new Lua states that allows to set memory limit
2020-05-12 02:14:48 +01:00
Alex Orlenko
2bd5c2f6ca
Hide Lua "Send" capability under the optional "send" feature flag
2020-05-11 02:43:34 +01:00
Alex Orlenko
7b0e4b4280
Add Send capability to Lua
2020-05-11 02:43:34 +01:00
Alex Orlenko
47e8a80c1c
v0.3.0-alpha.1 with async support
...
Squashed commit of the async branch.
2020-04-17 22:39:50 +01:00
Alex Orlenko
1a788c48f1
Cherry-pick changes from rlua:
...
- Make Value::type_name() public
- Update CallbackError and ExternalError Display impl
2020-04-15 21:23:00 +01:00
Alex Orlenko
fd17a01456
Add Lua 5.2 support
2019-11-30 00:58:41 +00:00
Alex Orlenko
c4fd7a9faf
Lua 5.1 support
2019-10-17 17:05:42 +01:00
Alex Orlenko
cb109f6e36
Rename to mlua
2019-10-01 16:11:12 +01:00
Alex Orlenko
affa85feb0
Backport changes from rlua 0.16 (master branch)
2019-09-29 12:53:13 +01:00
Alex Orlenko
14a68dd6d2
Add dyn to trait objects
2019-09-29 12:42:07 +01:00
kyren
51339ecb1d
Some documentation and changelog fixes
2018-10-01 05:14:43 -04:00
kyren
b8da08187d
Move integration tests into top-level tests directory
...
other minor refactors
2018-09-16 20:15:51 -04:00
kyren
8366960368
Update to failure 0.1.2, rename deprecated methods
2018-08-05 11:48:25 -04:00
kyren
02bc8da203
Prepare for 0.14.0 release
2018-06-29 01:24:28 -04:00
kyren
5aa22de68e
Use git dependency on failure 1.0 for right now
2018-03-20 14:07:32 -04:00
kyren
d331e4b97c
Error correctly on too many arguments / returns / binds / recursions
...
There are also some other drive-by changes to fix panicking in extern "C"
functions and other edge case stack errors
2018-02-09 23:40:23 -05:00
kyren
fe6e4bdf35
Explicit error type for destructed callbacks
...
Also removes some cleverness if debug_assertions was disabled, as it really
doesn't make much of a performance difference.
2018-02-09 21:23:59 -05:00
kyren
b056ed2c4e
Don't panic on mismatched RegistryKey use, instead return error
2018-02-06 10:51:39 -05:00
kyren
77eb73a50c
Simplify handling of userdata __gc and resurrected userdata.
...
Now, simply remove the userdata table immediately before dropping the userdata.
This does two things, it prevents __gc from double dropping the userdata, and
after the first call to __gc, it prevents the userdata from being identified as
any particular userdata type, so it cannot be misused after being finalized.
This change thus removes the userdata invalidation error, and simplifies a lot
of userdata handling code.
It also fixes a panic bug. Because there is no predictable order for
finalizers, it is possible to run a userdata finalizer that does not resurrect
itself before a lua table finalizer that accesses that userdata, and this means
that there were several asserts that were possible to trigger in normal Lua code
in util.rs related to `WrappedError`.
Now, finalized userdata is simply a userdata with no methods, so any use of
finalized userdata becomes a normal script runtime error (though, with a
potentially confusing error message). As a future improvement, we could set
a metatable on finalized userdata that provides a better error message.
2018-01-27 18:27:01 -05:00
Jonas Schievink
67f8e1d49c
Fix rustdoc rendering warning
2018-01-26 18:35:21 +01:00