Struct tlua::Object

source ·
pub struct Object<L> { /* private fields */ }
Expand description

A single value stored on the lua stack. Type parameter L represents a value guarding the state of the lua stack (see PushGuard).

Use this type to convert between different lua values, e.g. LuaTable <-> Indexable, etc.

Implementations§

source§

impl<L: AsLua> Object<L>

source

pub fn guard(&self) -> &L

source

pub fn into_guard(self) -> L

source

pub fn index(&self) -> AbsoluteIndex

source

pub unsafe fn try_downcast<T>(self) -> Result<T, Self>
where T: LuaRead<L>,

Try converting to a value implementing LuaRead.

Safety

In some cases this function will result in a drop of self.guard which is invalid in case self.index is not the top of the lua stack.

Trait Implementations§

source§

impl<L> AsLua for Object<L>
where L: AsLua,

source§

fn as_lua(&self) -> LuaState

source§

fn try_push<T>( self, v: T ) -> Result<PushGuard<Self>, (<T as PushInto<Self>>::Err, Self)>
where Self: Sized, T: PushInto<Self>,

Try to push v onto the lua stack. Read more
source§

fn push<T>(self, v: T) -> PushGuard<Self>
where Self: Sized, T: PushInto<Self>, <T as PushInto<Self>>::Err: Into<Void>,

Push v onto the lua stack. Read more
source§

fn try_push_one<T>( self, v: T ) -> Result<PushGuard<Self>, (<T as PushInto<Self>>::Err, Self)>
where Self: Sized, T: PushOneInto<Self>,

Try to push v onto the lua stack. Read more
source§

fn push_one<T>(self, v: T) -> PushGuard<Self>
where Self: Sized, T: PushOneInto<Self>, <T as PushInto<Self>>::Err: Into<Void>,

Push v onto the lua stack. Read more
source§

fn push_iter<I>(self, iterator: I) -> Result<PushGuard<Self>, Self>
where Self: Sized, I: Iterator, <I as Iterator>::Item: PushInto<LuaState>, <<I as Iterator>::Item as PushInto<LuaState>>::Err: Into<Void>,

Push iterator onto the lua stack as a lua table. Read more
source§

fn try_push_iter<I>( self, iterator: I ) -> Result<PushGuard<Self>, (PushIterErrorOf<I>, Self)>
where Self: Sized, I: Iterator, <I as Iterator>::Item: PushInto<LuaState>,

Push iterator onto the lua stack as a lua table. Read more
source§

fn read<T>(self) -> ReadResult<T, Self>
where Self: Sized, T: LuaRead<Self>,

source§

fn read_at<T>(self, index: i32) -> ReadResult<T, Self>
where Self: Sized, T: LuaRead<Self>,

source§

fn read_at_nz<T>(self, index: NonZeroI32) -> ReadResult<T, Self>
where Self: Sized, T: LuaRead<Self>,

source§

fn pcall<F, R>(&self, f: F) -> Result<R, LuaError>
where F: FnOnce(StaticLua) -> R,

Call a rust function in protected mode. If a lua error is thrown during execution of f the function will return a LuaError. Read more
source§

impl<L> AsRef<Object<L>> for Callable<L>
where L: AsLua,

source§

fn as_ref(&self) -> &Object<L>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<L> AsRef<Object<L>> for Indexable<L>
where L: AsLua,

source§

fn as_ref(&self) -> &Object<L>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<L> AsRef<Object<L>> for IndexableRW<L>
where L: AsLua,

source§

fn as_ref(&self) -> &Object<L>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<L> AsRef<Object<L>> for LuaFunction<L>
where L: AsLua,

source§

fn as_ref(&self) -> &Object<L>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<L> AsRef<Object<L>> for LuaTable<L>
where L: AsLua,

source§

fn as_ref(&self) -> &Object<L>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<L: Debug> Debug for Object<L>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, L> From<CDataOnStack<'a, L>> for Object<L>

source§

fn from(ud: CDataOnStack<'a, L>) -> Self

Converts to this type from the input type.
source§

impl<L> From<Callable<L>> for Object<L>
where L: AsLua,

source§

fn from(o: Callable<L>) -> Self

Converts to this type from the input type.
source§

impl<L> From<Indexable<L>> for Object<L>
where L: AsLua,

source§

fn from(o: Indexable<L>) -> Self

Converts to this type from the input type.
source§

impl<L> From<IndexableRW<L>> for Object<L>
where L: AsLua,

source§

fn from(o: IndexableRW<L>) -> Self

Converts to this type from the input type.
source§

impl<L> From<LuaFunction<L>> for Object<L>
where L: AsLua,

source§

fn from(o: LuaFunction<L>) -> Self

Converts to this type from the input type.
source§

impl<L> From<LuaTable<L>> for Object<L>
where L: AsLua,

source§

fn from(o: LuaTable<L>) -> Self

Converts to this type from the input type.
source§

impl<'a, T, L> From<UserdataOnStack<'a, T, L>> for Object<L>

source§

fn from(ud: UserdataOnStack<'a, T, L>) -> Self

Converts to this type from the input type.
source§

impl<L> LuaRead<L> for Object<L>
where L: AsLua,

source§

fn lua_read_at_position(lua: L, index: NonZeroI32) -> ReadResult<Self, L>

Reads the data from Lua at a given position.
source§

fn n_values_expected() -> i32

source§

fn lua_read(lua: L) -> ReadResult<Self, L>

Reads the data from Lua.
source§

fn lua_read_at_maybe_zero_position(lua: L, index: i32) -> ReadResult<Self, L>
where L: AsLua,

source§

impl<L, K> Push<L> for Object<K>
where L: AsLua, K: AsLua,

§

type Err = Void

Error that can happen when pushing a value.
source§

fn push_to_lua(&self, lua: L) -> PushResult<L, Self>

Pushes the value on the top of the stack. Read more
source§

fn push_no_err(&self, lua: L) -> PushGuard<L>
where <Self as Push<L>>::Err: Into<Void>,

Same as push_to_lua but can only succeed and is only available if Err implements Into<Void>.
source§

impl<L, K> PushInto<L> for Object<K>
where L: AsLua, K: AsLua,

§

type Err = Void

source§

fn push_into_lua(self, lua: L) -> PushIntoResult<L, Self>

Push the value into lua by value
source§

fn push_into_no_err(self, lua: L) -> PushGuard<L>
where Self: Sized, <Self as PushInto<L>>::Err: Into<Void>,

Same as push_into_lua but can only succeed and is only available if Err implements Into<Void>.
source§

impl<L> TryFrom<Object<L>> for CDataOnStack<'_, L>
where L: AsLua,

§

type Error = Object<L>

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

fn try_from(o: Object<L>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<L> TryFrom<Object<L>> for Callable<L>
where L: AsLua,

§

type Error = Object<L>

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

fn try_from(o: Object<L>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<L> TryFrom<Object<L>> for Indexable<L>
where L: AsLua,

§

type Error = Object<L>

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

fn try_from(o: Object<L>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<L> TryFrom<Object<L>> for IndexableRW<L>
where L: AsLua,

§

type Error = Object<L>

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

fn try_from(o: Object<L>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<L> TryFrom<Object<L>> for LuaFunction<L>
where L: AsLua,

§

type Error = Object<L>

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

fn try_from(o: Object<L>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<L> TryFrom<Object<L>> for LuaTable<L>
where L: AsLua,

§

type Error = Object<L>

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

fn try_from(o: Object<L>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<T, L> TryFrom<Object<L>> for UserdataOnStack<'_, T, L>
where L: AsLua, T: Any,

§

type Error = Object<L>

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

fn try_from(o: Object<L>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<L> PushOne<L> for Object<L>
where L: AsLua,

source§

impl<L> PushOneInto<L> for Object<L>
where L: AsLua,

Auto Trait Implementations§

§

impl<L> RefUnwindSafe for Object<L>
where L: RefUnwindSafe,

§

impl<L> Send for Object<L>
where L: Send,

§

impl<L> Sync for Object<L>
where L: Sync,

§

impl<L> Unpin for Object<L>
where L: Unpin,

§

impl<L> UnwindSafe for Object<L>
where L: UnwindSafe,

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>,

§

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>,

§

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.