Skip to main content

AmountReturned

Struct AmountReturned 

Source
pub struct AmountReturned(/* private fields */);
Expand description

Simple wrapper that tells Lua how many values a CFunction is intending to return.

Without this wrapper, Lua would willingly attempt to return as many values as you say, which can easily go beyond the stack and result in undefined behavior.

This wrapper can only be (safely) created by LuaState, which will check if the amount is valid before returning the AmountReturned (see LuaState::finish).

Implementations§

Source§

impl AmountReturned

Source

pub const NONE: Self

Tells Lua that no values are intended to be returned.

Always safe to use since nothing gets popped.

Source

pub const unsafe fn unchecked(amount: i32) -> Self

Wraps amount around an AmountReturned, without doing any checks.

§Safety

amount must not be higher than the amount of values the Lua stack is holding at the time of returning.

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.