Make userdata module public

This commit is contained in:
Alex Orlenko
2026-02-22 19:52:57 +00:00
parent 33bf3ffde7
commit eb76db59da
3 changed files with 25 additions and 6 deletions
+8 -5
View File
@@ -85,7 +85,6 @@ mod stdlib;
mod thread;
mod traits;
mod types;
mod userdata;
mod util;
mod value;
mod vector;
@@ -95,6 +94,7 @@ pub mod function;
pub mod prelude;
pub mod string;
pub mod table;
pub mod userdata;
pub use bstr::BString;
pub use ffi::{self, lua_CFunction, lua_State};
@@ -116,14 +116,17 @@ pub use crate::types::{
AppDataRef, AppDataRefMut, Either, Integer, LightUserData, MaybeSend, MaybeSync, Number, RegistryKey,
VmState,
};
pub use crate::userdata::{
AnyUserData, MetaMethod, UserData, UserDataFields, UserDataMetatable, UserDataMethods, UserDataRef,
UserDataRefMut, UserDataRegistry,
};
pub use crate::userdata::AnyUserData;
pub use crate::value::{Nil, Value};
// Re-export some types to keep backward compatibility and avoid breaking changes in the public API.
#[doc(hidden)]
pub use crate::string::LuaString as String;
#[doc(hidden)]
pub use crate::userdata::{
MetaMethod, UserData, UserDataFields, UserDataMetatable, UserDataMethods, UserDataRef, UserDataRefMut,
UserDataRegistry,
};
#[cfg(not(feature = "luau"))]
pub use crate::debug::HookTriggers;
+16
View File
@@ -1,3 +1,19 @@
//! Lua userdata handling.
//!
//! This module provides types for creating and working with Lua userdata from Rust.
//!
//! # Main Types
//!
//! - [`AnyUserData`] - A handle to a Lua userdata value of any Rust type.
//! - [`UserData`] - Trait to implement for types that should be exposed to Lua as userdata.
//! - [`UserDataFields`] - Trait for registering fields on userdata types.
//! - [`UserDataMethods`] - Trait for registering methods on userdata types.
//! - [`UserDataRegistry`] - Registry for userdata methods and fields.
//! - [`UserDataMetatable`] - A handle to the metatable of a userdata type.
//! - [`UserDataRef`] - A borrowed reference to a userdata value.
//! - [`UserDataRefMut`] - A mutably borrowed reference to a userdata value.
//! - [`MetaMethod`] - Metamethod names for customizing Lua operators.
use std::any::TypeId;
use std::ffi::CStr;
use std::fmt;
+1 -1
View File
@@ -1376,7 +1376,7 @@ fn test_userdata_namecall() -> Result<()> {
struct MyUserData;
impl UserData for MyUserData {
fn register(registry: &mut mlua::UserDataRegistry<Self>) {
fn register(registry: &mut UserDataRegistry<Self>) {
registry.add_method("method", |_, _, ()| Ok("method called"));
registry.add_field_method_get("field", |_, _| Ok("field value"));