Alex Orlenko
1ebb4b468a
Support 52-bit integers for Luau
...
Simply to float conversion (it actually never fails or goes out of range)
2025-03-13 16:18:44 +00:00
Alex Orlenko
fca38a6637
Imporove BorrowedStr/BorrowedBytes ergonomic.
...
Implement `FromLua` and `IntoLua` for these types to allow working with them directly.
2025-01-30 23:07:02 +00:00
Alex Orlenko
8574682ffc
Improve From/Into Lua char conversion
2025-01-28 10:41:10 +00:00
tk
47bc372096
impl FromLua/IntoLua for char (#516 )
2025-01-28 10:10:28 +00:00
Alex Orlenko
3dc58cdfc9
Move Luau Vector type to top level
2024-10-22 22:41:26 +01:00
Alex Orlenko
d64d9719c6
Replace Either enum with implementation from either crate
2024-10-20 12:06:08 +01:00
Alex Orlenko
c702077028
More Lua values conversion tests
2024-10-19 15:08:51 +01:00
Alex Orlenko
9f6c78532f
Move IntoLua/FromLua and IntoLuaMulti/FromLuaMulti to traits module
2024-10-07 10:32:50 +01:00
Alex Orlenko
fa343c2c69
More optimal OsStr/Path conversion to Lua
2024-10-06 22:45:36 +01:00
psentee
6d5e735bed
Add IntoLua/FromLua for OsString/OsStr and PathBuf/Path ( #459 )
2024-10-06 13:43:20 +01:00
Alex Orlenko
4bc846a119
Add optional anyhow dependency (under the same feature flag) to implement IntoLua for anyhow::Error
2024-10-05 23:16:36 +01:00
Alex Orlenko
529361fcbc
Add new Buffer type for Luau.
...
Previously it was represented as `AnyUserData` which is not always convenient.
2024-10-01 15:21:19 +01:00
Alex Orlenko
fb0c0d9ee9
Add Either<L, R> enum to combine two types into a single one.
...
It implements `FromLua` and `IntoLua` traits for easy type conversions..
2024-09-26 18:58:28 +01:00
Alex Orlenko
7957c6868d
Fastpath for LuaString/integer/float conversion from Lua
2024-09-07 12:25:35 +01:00
Alex Orlenko
94415065c0
Fix Lua String soundness when borrowing &str or &[u8].
...
Make borrowing using new `BorrowedStr` and `BorrowedBytes` types that holds strong reference to Lua.
2024-07-31 13:42:38 +01:00
Alex Orlenko
b4892c228c
Add rustfmt.toml
2024-07-31 13:42:37 +01:00
Alex Orlenko
c1395ab543
clippy
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
4aa178fcc0
Take &Value in Lua::push_value()
2024-07-31 13:42:35 +01:00
Alex Orlenko
98ca880f8a
Change Value::Error variant to store Box<Error> instead of Error.
...
This will help to reduce size of `Value` enum on the stack.
2024-07-31 13:42:34 +01:00
Alex Orlenko
c23fa5aa6c
Optimize RegistryKey internals
...
- Store single `AtomicI32` field instead of pair i32,AtomicBool
- Make creation faster by skipping intermediate `Value` layer
Add new `RegistryKey::id()` method to return underlying identifier
2024-06-18 16:09:06 +01:00
Alex Orlenko
a644049087
Cosmetic changes for clippy
2024-04-05 12:44:18 +01:00
Alex Orlenko
f67f8646ae
Implement push_into_stack/from_stack for Option<T>
2024-03-28 18:18:08 +00:00
Alex Orlenko
fa217d3706
Better Luau buffer type support.
...
- Add `Lua::create_buffer()` function
- Support serializing buffer type as a byte slice
- Support accessing copy of underlying bytes using `BString`
2024-03-28 13:05:01 +00:00
Yiyu Lin
b62f2ee0f7
chore: make clippy happy ( #388 )
...
Co-authored-by: hzlinyiyu <hzlinyiyu@corp.netease.com >
2024-03-25 13:26:06 +00:00
Alex Orlenko
83c075c72b
Implement IntoLua for RegistryKey
2024-02-29 22:45:32 +00:00
Alex Orlenko
020e8a78a8
Impl FromLua for RegistryKey
2024-02-10 15:41:48 +00:00
Alex Orlenko
3ca7b4942e
Implement IntoLua for &Value
2024-02-07 00:10:49 +00:00
Alex Orlenko
1754226c74
Impl IntoLua::push_into_stack for integers
2024-02-03 21:32:49 +00:00
Alex Orlenko
f5982bc204
Add inline to FromLua<bool>::from_stack
2024-01-27 14:40:32 +00:00
Alex Orlenko
512921404c
Add fastpath push_into_stack/from_stack methods for bool type
2024-01-26 14:07:56 +00:00
Alex Orlenko
df778b7b33
Impl Into/FromLua for OwnedString
2024-01-25 18:04:55 +00:00
Alex Orlenko
2ac7b23596
Impl Into/FromLua for OwnedThread
2024-01-25 09:34:37 +00:00
Alex Orlenko
8200bee467
Implement IntoLua for ref to String/Table/Function/AnyUserData
...
This would prevent cloning plus has better performance when pushing values to Lua stack (`IntoLua::push_into_stack` method)
2024-01-23 22:14:50 +00:00
Alex Orlenko
727f99ee4d
Implement IntoLua for &RegistryKey
...
This would allow just passing registry keys to arguments with fasttrack to push directly into stack.
2024-01-20 22:04:28 +00:00
Alex Orlenko
5043447f23
Support Luau buffer type and and library.
...
Buffer is an object that represents a fixed-size mutable block of memory and added to Luau 0.601.
See https://luau-lang.org/library#buffer-library for more details.
2023-11-16 12:55:58 +00:00
Alex Orlenko
c062cddd87
Fastpath IntoLua/FromLua for StdString and &str
...
This includes direct push to Lua stack and getting value from Lua stack.
2023-08-03 10:02:20 +01:00
Alex Orlenko
28bcc73f2c
Move impl IntoLua for WrappedFunction to the function.rs file
2023-07-27 15:19:34 +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
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
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
0fccdfed5c
Fix feature flags for owned types
2023-04-14 01:17:26 +01:00
Alex Orlenko
65e72f39ae
Remove unstable feature flag from Function::wrap/wrap_mut/wrap_async
2023-04-14 00:21:18 +01: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
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