[][src]Enum mlua::prelude::LuaValue

pub enum LuaValue<'lua> {
    Nil,
    Boolean(bool),
    LightUserData(LightUserData),
    Integer(Integer),
    Number(Number),
    String(String<'lua>),
    Table(Table<'lua>),
    Function(Function<'lua>),
    Thread(Thread<'lua>),
    UserData(AnyUserData<'lua>),
    Error(Error),
}

A dynamically typed Lua value. The String, Table, Function, Thread, and UserData variants contain handle types into the internal Lua state. It is a logic error to mix handle types between separate Lua instances, or between a parent Lua instance and one received as a parameter in a Rust callback, and doing so will result in a panic.

Variants

Nil

The Lua value nil.

Boolean(bool)

The Lua value true or false.

LightUserData(LightUserData)

A "light userdata" object, equivalent to a raw pointer.

Integer(Integer)

An integer number.

Any Lua number convertible to a Integer will be represented as this variant.

Number(Number)

A floating point number.

String(String<'lua>)

An interned string, managed by Lua.

Unlike Rust strings, Lua strings may not be valid UTF-8.

Table(Table<'lua>)

Reference to a Lua table.

Function(Function<'lua>)

Reference to a Lua function (or closure).

Thread(Thread<'lua>)

Reference to a Lua thread (or coroutine).

UserData(AnyUserData<'lua>)

Reference to a userdata object that holds a custom type which implements UserData. Special builtin userdata types will be represented as other Value variants.

Error(Error)

Error is a special builtin userdata type. When received from Lua it is implicitly cloned.

Methods

impl<'lua> Value<'lua>[src]

pub fn type_name(&self) -> &'static str[src]

pub fn equals<T: AsRef<Self>>(&self, other: T) -> Result<bool>[src]

Compares two values for equality.

Equality comparisons do not convert strings to numbers or vice versa. Tables, Functions, Threads, and Userdata are compared by reference: two objects are considered equal only if they are the same object.

If Tables or Userdata have __eq metamethod then mlua will try to invoke it. The first value is checked first. If that value does not define a metamethod for __eq, then mlua will check the second value. Then mlua calls the metamethod with the two values as arguments, if found.

Trait Implementations

impl<'lua> AsRef<Value<'lua>> for Value<'lua>[src]

impl<'lua> Clone for Value<'lua>[src]

impl<'lua> Debug for Value<'lua>[src]

impl<'lua> FromIterator<Value<'lua>> for MultiValue<'lua>[src]

impl<'lua> FromLua<'lua> for Value<'lua>[src]

impl<'lua> PartialEq<Value<'lua>> for Value<'lua>[src]

impl<'lua> ToLua<'lua> for Value<'lua>[src]

Auto Trait Implementations

impl<'lua> !RefUnwindSafe for Value<'lua>

impl<'lua> !Send for Value<'lua>

impl<'lua> !Sync for Value<'lua>

impl<'lua> Unpin for Value<'lua>

impl<'lua> !UnwindSafe for Value<'lua>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.