Enum mlua::Value [−][src]
pub enum Value<'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
The Lua value nil
.
Boolean(bool)
The Lua value true
or false
.
Tuple Fields of Boolean
0: bool
LightUserData(LightUserData)
A “light userdata” object, equivalent to a raw pointer.
Tuple Fields of LightUserData
Integer(Integer)
An integer number.
Any Lua number convertible to a Integer
will be represented as this variant.
Tuple Fields of Integer
0: Integer
Number(Number)
A floating point number.
Tuple Fields of Number
0: Number
String(String<'lua>)
An interned string, managed by Lua.
Unlike Rust strings, Lua strings may not be valid UTF-8.
Tuple Fields of String
0: String<'lua>
Table(Table<'lua>)
Reference to a Lua table.
Tuple Fields of Table
0: Table<'lua>
Function(Function<'lua>)
Reference to a Lua function (or closure).
Tuple Fields of Function
0: Function<'lua>
Thread(Thread<'lua>)
Reference to a Lua thread (or coroutine).
Tuple Fields of Thread
0: Thread<'lua>
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.
Tuple Fields of UserData
0: AnyUserData<'lua>
Error(Error)
Error
is a special builtin userdata type. When received from Lua it is implicitly cloned.
Tuple Fields of Error
0: Error
Implementations
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
Auto Trait Implementations
impl<'lua> !RefUnwindSafe for Value<'lua>
impl<'lua> !UnwindSafe for Value<'lua>
Blanket Implementations
Mutably borrows from an owned value. Read more