Alex Orlenko
09da7a41e5
Add new serde option "detect_mixed_tables"
...
This option would allow detecting mixed tables (with array-like and map-like entries or several borders)
to encoding them chosing the best method (as a map or as a table).
2025-09-12 11:11:18 +01:00
Alex Orlenko
bad20374ad
Simplify Table::clear method
...
There is no need to traverse array part, lua_next will cover everything
2025-09-08 23:37:28 +01:00
Alex Orlenko
40b507c3ec
Add ObjectLike::get_path helper
2025-09-04 19:12:44 +01:00
Alex Orlenko
df0a44d405
Make Lua reference values cheap to clone
...
Instead of locking the VM and making a copy on auxiliary thread, track number of references using Rust ref counter.
This should also help reducing number of used references (they are limited to to 1M usually) on auxiliary thread.
2025-08-20 12:05:37 +01:00
Alex Orlenko
f945a35cbd
Execute metatable destructor in Table::set_metatable at the end of invocation
...
Before this change, destructor was executed shortly after pushing metatable to ref_thread.
2025-07-15 19:14:46 +01:00
Alex Orlenko
95367855c1
Return AsyncCallFuture<R> instead of opaque impl Future from ObjectLike trait.
2025-07-12 15:30:58 +01:00
Alex Orlenko
7afbf74128
Add MaybeSend bound to async methods on ObjectLike trait (sealed)
2025-07-12 12:45:36 +01:00
Alex Orlenko
646827a6bb
Update Table::set_metatable
...
- Return Err (instead of panic) when trying to change readonly table (Luau)
- Slightly optimize performance
2025-07-06 11:37:02 +01:00
Alex Orlenko
1882931cd9
Optimize Table::metatable
2025-07-06 10:57:26 +01:00
Alex Orlenko
63e7cfd31b
Satisfy mismatched-lifetime-syntaxes lint (nightly)
...
See rust-lang/rust#141787
2025-06-12 16:30:48 +01:00
Alex Orlenko
7bc72be7d3
Use serde feature flag instead of serialize.
...
The old one is still supported.
2025-06-12 13:35:22 +01:00
Alex Orlenko
93adfa42d1
Update doc comments
2025-05-06 22:36:23 +01:00
Alex Orlenko
8e1df48e81
Add encode_empty_tables_as_array serialize option.
...
This will change the behaviour of encoding empty Lua tables into array instead of map.
2025-04-26 17:53:56 +01:00
Alex Orlenko
efd192b816
Optimize Table::is_empty
2025-04-26 15:37:12 +01:00
Alex Orlenko
87fa663ac1
Remove deprecated functions
2025-03-28 13:24:15 +00:00
Alex Orlenko
cacd3dc70f
Add Table::set_safeenv method (Luau)
2024-12-04 10:40:49 +00:00
Alex Orlenko
8c889cc353
Add String::display method
2024-11-09 14:24:43 +00:00
Alex Orlenko
b34b90eca3
Fix wrong formatting table with string keys that are numbers
2024-11-09 13:51:55 +00:00
Alex Orlenko
a4bfeb7752
clippy
2024-11-09 12:38:05 +00:00
vhyrro
0fda512938
feat(table): improve pretty-printing for simple tables and lists ( #478 )
2024-11-09 12:08:49 +00:00
Alex Orlenko
ec227f9056
Optimize Table readonly check (Luau)
...
Optimize `Table::has_metatable` check.
2024-10-19 23:58:57 +01:00
Alex Orlenko
93a1a55aaa
Update docs
2024-10-19 23:10:43 +01:00
Alex Orlenko
08545224f4
clippy
2024-10-19 11:49:40 +01:00
Alex Orlenko
179c54f297
Remove generic from Table::equals and Value::equals
2024-10-16 16:11:48 +01:00
Alex Orlenko
f9ae4bf05f
Update table tests
2024-10-16 16:00:01 +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
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
e582e7c57f
Rename get_metatable to metatable for Table/AnyUserData types
2024-09-23 11:13:16 +01:00
Alex Orlenko
ca69be07ff
Support setting metatable for Lua builtin types.
...
Closes #445
2024-09-23 10:45:57 +01:00
Alex Orlenko
7957c6868d
Fastpath for LuaString/integer/float conversion from Lua
2024-09-07 12:25:35 +01:00
Alex Orlenko
d6b27de34e
Optimize ObjectLike::to_string for tables and userdata
2024-08-30 22:55:53 +01:00
Alex Orlenko
4018a17e26
Combine TableExt and AnyUserDataExt traits into ObjectLike
2024-08-30 22:50:03 +01:00
Alex Orlenko
8e14b6e40b
Fix tests
2024-08-04 22:22:02 +01:00
Alex Orlenko
4082b354fe
clippy
2024-08-01 00:55:10 +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
c715aec1f7
Do not consume self in Table::pairs and Table::sequence_values methods.
2024-07-31 13:42:38 +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
d17dc54645
Rewrite call_async in traits to use impl Future instead of LocalBoxFuture.
...
More use `std::future` types instead of `future-utils`.
2024-07-31 13:42:36 +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
08c7429531
Optimize various parts of the code to remove unnecessary clone calls.
...
This is became possible after implementing `IntoLua` for references.
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
ea2faa3755
clippy
2024-05-15 23:11:33 +01:00
Alex Orlenko
59c9abbac7
Fix serializing same table multiple times.
...
Fixes #408
2024-05-14 00:42:04 +01:00
Alex Orlenko
8a9c4f0b15
Optimize table array traversal during serialization
2024-02-11 23:02:36 +00:00
Alex Orlenko
908f37656a
Add to_pointer function to Function/Table/Thread
2024-02-02 09:23:16 +00:00
Alex Orlenko
ec0fb7614e
Optimize Table serialization (faster traversal)
2023-10-12 10:37:52 +01:00