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

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),
}
Expand description

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, and doing so will result in a panic.

Variants

Nil
Expand description

The Lua value nil.

Boolean(bool)
Expand description

The Lua value true or false.

LightUserData(LightUserData)
Expand description

A “light userdata” object, equivalent to a raw pointer.

Integer(Integer)
Expand description

An integer number.

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

Number(Number)
Expand description

A floating point number.

String(String<'lua>)
Expand description

An interned string, managed by Lua.

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

Table(Table<'lua>)
Expand description

Reference to a Lua table.

Function(Function<'lua>)
Expand description

Reference to a Lua function (or closure).

Thread(Thread<'lua>)
Expand description

Reference to a Lua thread (or coroutine).

UserData(AnyUserData<'lua>)
Expand description

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)
Expand description

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

Implementations

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]

fn as_ref(&self) -> &Self[src]

Performs the conversion.

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

fn clone(&self) -> Value<'lua>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

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

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

Formats the value using the given formatter. Read more

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

fn from_iter<I: IntoIterator<Item = Value<'lua>>>(iter: I) -> Self[src]

Creates a value from an iterator. Read more

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

fn from_lua(lua_value: Value<'lua>, _: &'lua Lua) -> Result<Self>[src]

Performs the conversion.

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

fn eq(&self, other: &Self) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

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

fn serialize<S>(&self, serializer: S) -> StdResult<S::Ok, S::Error> where
    S: Serializer
[src]

Serialize this value into the given Serde serializer. Read more

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

fn to_lua(self, _: &'lua Lua) -> Result<Value<'lua>>[src]

Performs the conversion.

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]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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

pub fn erased_serialize(
    &self,
    serializer: &mut dyn Serializer
) -> Result<Ok, Error>
[src]

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

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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.

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

Performs the conversion.

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.

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

Performs the conversion.