Skip to content

Commit d5d66ab

Browse files
committed
Refactor GC control API
- Replace `gc_inc/gc_gen` with `gc_set_mode` - Add `GcIncParams` and `GcGenParams` for GC tuning - Remove `gc_step_kbytes` (it's very rare needed and Lua 5.5 has changed the input param from kbytes to bytes)
1 parent a2d8b21 commit d5d66ab

File tree

4 files changed

+258
-152
lines changed

4 files changed

+258
-152
lines changed

src/lib.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ pub use crate::error::{Error, ErrorContext, ExternalError, ExternalResult, Resul
107107
pub use crate::function::Function;
108108
pub use crate::multi::{MultiValue, Variadic};
109109
pub use crate::scope::Scope;
110-
pub use crate::state::{GCMode, Lua, LuaOptions, WeakLua};
110+
#[cfg(any(feature = "lua54", feature = "lua55"))]
111+
#[cfg_attr(docsrs, doc(cfg(any(feature = "lua54", feature = "lua55"))))]
112+
pub use crate::state::GcGenParams;
113+
pub use crate::state::{GcIncParams, GcMode, Lua, LuaOptions, WeakLua};
111114
pub use crate::stdlib::StdLib;
112115
#[doc(inline)]
113116
pub use crate::string::{BorrowedBytes, BorrowedStr, LuaString};

src/prelude.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ pub use crate::{
55
AnyUserData as LuaAnyUserData, BorrowedBytes as LuaBorrowedBytes, BorrowedStr as LuaBorrowedStr,
66
Chunk as LuaChunk, ChunkMode as LuaChunkMode, Either as LuaEither, Error as LuaError,
77
ErrorContext as LuaErrorContext, ExternalError as LuaExternalError, ExternalResult as LuaExternalResult,
8-
FromLua, FromLuaMulti, Function as LuaFunction, GCMode as LuaGCMode, Integer as LuaInteger, IntoLua,
9-
IntoLuaMulti, LightUserData as LuaLightUserData, Lua, LuaNativeFn, LuaNativeFnMut, LuaOptions, LuaString,
10-
MetaMethod as LuaMetaMethod, MultiValue as LuaMultiValue, Nil as LuaNil, Number as LuaNumber,
11-
ObjectLike as LuaObjectLike, RegistryKey as LuaRegistryKey, Result as LuaResult, StdLib as LuaStdLib,
12-
Table as LuaTable, Thread as LuaThread, UserData as LuaUserData, UserDataFields as LuaUserDataFields,
13-
UserDataMetatable as LuaUserDataMetatable, UserDataMethods as LuaUserDataMethods,
14-
UserDataRef as LuaUserDataRef, UserDataRefMut as LuaUserDataRefMut,
15-
UserDataRegistry as LuaUserDataRegistry, Value as LuaValue, Variadic as LuaVariadic,
16-
VmState as LuaVmState, WeakLua, function::FunctionInfo as LuaFunctionInfo,
8+
FromLua, FromLuaMulti, Function as LuaFunction, GcIncParams as LuaGcIncParams, GcMode as LuaGcMode,
9+
Integer as LuaInteger, IntoLua, IntoLuaMulti, LightUserData as LuaLightUserData, Lua, LuaNativeFn,
10+
LuaNativeFnMut, LuaOptions, LuaString, MetaMethod as LuaMetaMethod, MultiValue as LuaMultiValue,
11+
Nil as LuaNil, Number as LuaNumber, ObjectLike as LuaObjectLike, RegistryKey as LuaRegistryKey,
12+
Result as LuaResult, StdLib as LuaStdLib, Table as LuaTable, Thread as LuaThread,
13+
UserData as LuaUserData, UserDataFields as LuaUserDataFields, UserDataMetatable as LuaUserDataMetatable,
14+
UserDataMethods as LuaUserDataMethods, UserDataRef as LuaUserDataRef,
15+
UserDataRefMut as LuaUserDataRefMut, UserDataRegistry as LuaUserDataRegistry, Value as LuaValue,
16+
Variadic as LuaVariadic, VmState as LuaVmState, WeakLua, function::FunctionInfo as LuaFunctionInfo,
1717
table::TablePairs as LuaTablePairs, table::TableSequence as LuaTableSequence,
1818
thread::ThreadStatus as LuaThreadStatus,
1919
};
@@ -22,6 +22,10 @@ pub use crate::{
2222
#[doc(no_inline)]
2323
pub use crate::HookTriggers as LuaHookTriggers;
2424

25+
#[cfg(any(feature = "lua54", feature = "lua55"))]
26+
#[doc(no_inline)]
27+
pub use crate::GcGenParams as LuaGcGenParams;
28+
2529
#[cfg(feature = "luau")]
2630
#[doc(no_inline)]
2731
pub use crate::{

0 commit comments

Comments
 (0)