pub struct LuaRegistryKey { /* private fields */ }
Expand description

An auto generated key into the Lua registry.

This is a handle to a value stored inside the Lua registry. Unlike the Table or Function handle types, this handle is Send + Sync + 'static and can be returned outside of a call to Lua::context. Also, rather than calling methods directly on it, you must instead retrieve the value first by calling Context::registry_value inside a call to Lua::context.

It is not automatically garbage collected on Drop, but it can be removed with Context::remove_registry_value, and instances not manually removed can be garbage collected with Context::expire_registry_values.

Be warned, If you place this into Lua via a UserData type or a rust callback and rely on Context::expire_registry_values, it is very easy to accidentally cause reference cycles that cannot be automatically collected. The Lua garbage collector is not aware of the registry handle pattern, so holding onto a RegistryKey inside Lua may lead to it never being dropped, and it if it is not droped, Context::expire_registry_values will never remove the value from the registry, leading to an uncollectable cycle. Instead of placing a RegistryKey into Lua and relying on it being automatically dropped, prefer APIs which the Lua garbage collector understands, such as UserData::set_i_user_value / UserData::get_i_user_value for UserData types and Function::bind for callbacks.

Trait Implementations

Formats the value using the given formatter. Read more

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.