pub trait TealData: Sized + ToTypename {
// Provided methods
fn add_methods<'lua, T: TealDataMethods<'lua, Self>>(_methods: &mut T) { ... }
fn add_fields<'lua, F: TealDataFields<'lua, Self>>(_fields: &mut F) { ... }
}
Expand description
This is the teal version of UserData.
Provided Methods§
sourcefn add_methods<'lua, T: TealDataMethods<'lua, Self>>(_methods: &mut T)
fn add_methods<'lua, T: TealDataMethods<'lua, Self>>(_methods: &mut T)
same as UserData::add_methods. Refer to its documentation on how to use it.
only difference is that it takes a TealDataMethods, which is the teal version of UserDataMethods
Examples found in repository?
examples/mlua/manual.rs (line 63)
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
fn add_methods<'lua, T: UserDataMethods<'lua, Self>>(methods: &mut T) {
let mut wrapper = UserDataWrapper::from_user_data_methods(methods);
<Self as TealData>::add_methods(&mut wrapper)
}
fn add_fields<'lua, F: mlua::UserDataFields<'lua, Self>>(fields: &mut F) {
let mut wrapper = UserDataWrapper::from_user_data_fields(fields);
<Self as TealData>::add_fields(&mut wrapper)
}
}
impl TypeBody for Example {
fn get_type_body() -> tealr::TypeGenerator {
let mut gen = tealr::RecordGenerator::new::<Self>(false);
gen.is_user_data = true;
<Self as TealData>::add_fields(&mut gen);
<Self as TealData>::add_methods(&mut gen);
gen.into()
}
More examples
examples/mlua/manual_documentation.rs (line 75)
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
fn add_methods<'lua, T: UserDataMethods<'lua, Self>>(methods: &mut T) {
let mut wrapper = UserDataWrapper::from_user_data_methods(methods);
<Self as TealData>::add_methods(&mut wrapper);
}
fn add_fields<'lua, F: mlua::UserDataFields<'lua, Self>>(fields: &mut F) {
let mut wrapper = UserDataWrapper::from_user_data_fields(fields);
<Self as TealData>::add_fields(&mut wrapper);
}
}
impl TypeBody for Example {
fn get_type_body() -> tealr::TypeGenerator {
let mut gen = tealr::RecordGenerator::new::<Self>(false);
gen.is_user_data = true;
<Self as TealData>::add_fields(&mut gen);
<Self as TealData>::add_methods(&mut gen);
gen.into()
}
sourcefn add_fields<'lua, F: TealDataFields<'lua, Self>>(_fields: &mut F)
fn add_fields<'lua, F: TealDataFields<'lua, Self>>(_fields: &mut F)
same as UserData::add_fields. Refer to its documentation on how to use it.
only difference is that it takes a TealDataFields, which is the teal version of UserDataFields
Examples found in repository?
examples/mlua/manual.rs (line 67)
65 66 67 68 69 70 71 72 73 74 75 76 77 78
fn add_fields<'lua, F: mlua::UserDataFields<'lua, Self>>(fields: &mut F) {
let mut wrapper = UserDataWrapper::from_user_data_fields(fields);
<Self as TealData>::add_fields(&mut wrapper)
}
}
impl TypeBody for Example {
fn get_type_body() -> tealr::TypeGenerator {
let mut gen = tealr::RecordGenerator::new::<Self>(false);
gen.is_user_data = true;
<Self as TealData>::add_fields(&mut gen);
<Self as TealData>::add_methods(&mut gen);
gen.into()
}
More examples
examples/mlua/manual_documentation.rs (line 79)
77 78 79 80 81 82 83 84 85 86 87 88 89 90
fn add_fields<'lua, F: mlua::UserDataFields<'lua, Self>>(fields: &mut F) {
let mut wrapper = UserDataWrapper::from_user_data_fields(fields);
<Self as TealData>::add_fields(&mut wrapper);
}
}
impl TypeBody for Example {
fn get_type_body() -> tealr::TypeGenerator {
let mut gen = tealr::RecordGenerator::new::<Self>(false);
gen.is_user_data = true;
<Self as TealData>::add_fields(&mut gen);
<Self as TealData>::add_methods(&mut gen);
gen.into()
}
Object Safety§
This trait is not object safe.