Struct LuaUserdata

Source
pub struct LuaUserdata { /* private fields */ }
Expand description

Represents user-defined data on the Lua stack

Note that without a __gc metamethod, any data contained in the userdata that implements the Drop trait will not be dropped, which although not unsafe, may result in memory leaks. This includes types such as HashMap and Vec.

Implementations§

Source§

impl LuaUserdata

Source

pub fn new(i: Index) -> LuaUserdata

Create a new LuaUserdata at the given index

Source

pub fn set_metatable(&self, context: &mut Context<'_>, meta: &LuaTable)

Set this userdata’s metatable.

Source

pub unsafe fn get_value<'a, T>( &self, context: &'a mut Context<'_>, ) -> Option<&'a mut T>

Get a mutable reference to this userdata’s contained data.

Source

pub unsafe fn get_value_named<'a, T>( &self, context: &'a mut Context<'_>, name: &str, ) -> Option<&'a mut T>

Get a mutable reference to this userdata’s contained data, given that its metatable matches the given name.

Trait Implementations§

Source§

impl FromLua for LuaUserdata

Source§

fn from_lua(state: &mut State, index: Index) -> Option<LuaUserdata>

Converts the value on top of the stack of a Lua state to a value of type Option<Self>.
Source§

impl LuaStackable for LuaUserdata

Source§

fn get_pos(&self) -> Index

Get the position of this value on the stack
Source§

impl ToLua for LuaUserdata

Source§

fn to_lua(&self, state: &mut State)

Pushes a value of type Self onto the stack of a Lua state.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.