Enum LuaValue
pub enum LuaValue {
Nil,
Boolean(bool),
LightUserData(LightUserData),
Integer(i64),
Number(f64),
String(String),
Table(Table),
Function(Function),
Thread(Thread),
UserData(AnyUserData),
Error(Box<Error>),
Other(/* private fields */),
}Expand description
A dynamically typed Lua value.
The non-primitive variants (eg. string/table/function/thread/userdata) 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
The Lua value nil.
Boolean(bool)
The Lua value true or false.
LightUserData(LightUserData)
A “light userdata” object, equivalent to a raw pointer.
Integer(i64)
An integer number.
Any Lua number convertible to a Integer will be represented as this variant.
Number(f64)
A floating point number.
String(String)
An interned string, managed by Lua.
Unlike Rust strings, Lua strings may not be valid UTF-8.
Table(Table)
Reference to a Lua table.
Function(Function)
Reference to a Lua function (or closure).
Thread(Thread)
Reference to a Lua thread (or coroutine).
UserData(AnyUserData)
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(Box<Error>)
Error is a special builtin userdata type. When received from Lua it is implicitly cloned.
Other(/* private fields */)
Any other value not known to mlua (eg. LuaJIT CData).
Implementations§
§impl Value
impl Value
pub const NULL: Value
pub const NULL: Value
A special value (lightuserdata) to represent null value.
It can be used in Lua tables without downsides of nil.
pub fn equals(&self, other: &Value) -> Result<bool, Error>
pub fn equals(&self, other: &Value) -> Result<bool, Error>
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 table 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.
pub fn to_pointer(&self) -> *const c_void
pub fn to_pointer(&self) -> *const c_void
Converts the value to a generic C pointer.
The value can be a userdata, a table, a thread, a string, or a function; otherwise it returns NULL. Different objects will give different pointers. There is no way to convert the pointer back to its original value.
Typically this function is used only for hashing and debug information.
pub fn to_string(&self) -> Result<String, Error>
pub fn to_string(&self) -> Result<String, Error>
Converts the value to a string.
This might invoke the __tostring metamethod for non-primitive types (eg. tables,
functions).
pub fn is_boolean(&self) -> bool
pub fn is_boolean(&self) -> bool
Returns true if the value is a boolean.
pub fn as_boolean(&self) -> Option<bool>
pub fn as_boolean(&self) -> Option<bool>
Cast the value to boolean.
If the value is a Boolean, returns it or None otherwise.
pub fn is_light_userdata(&self) -> bool
pub fn is_light_userdata(&self) -> bool
Returns true if the value is a LightUserData.
pub fn as_light_userdata(&self) -> Option<LightUserData>
pub fn as_light_userdata(&self) -> Option<LightUserData>
Cast the value to LightUserData.
If the value is a LightUserData, returns it or None otherwise.
pub fn is_integer(&self) -> bool
pub fn is_integer(&self) -> bool
Returns true if the value is an Integer.
pub fn as_integer(&self) -> Option<i64>
pub fn as_integer(&self) -> Option<i64>
pub fn as_i32(&self) -> Option<i32>
pub fn as_i32(&self) -> Option<i32>
Cast the value to i32.
If the value is a Lua Integer, try to convert it to i32 or return None otherwise.
pub fn as_u32(&self) -> Option<u32>
pub fn as_u32(&self) -> Option<u32>
Cast the value to u32.
If the value is a Lua Integer, try to convert it to u32 or return None otherwise.
pub fn as_i64(&self) -> Option<i64>
pub fn as_i64(&self) -> Option<i64>
Cast the value to i64.
If the value is a Lua Integer, try to convert it to i64 or return None otherwise.
pub fn as_u64(&self) -> Option<u64>
pub fn as_u64(&self) -> Option<u64>
Cast the value to u64.
If the value is a Lua Integer, try to convert it to u64 or return None otherwise.
pub fn as_isize(&self) -> Option<isize>
pub fn as_isize(&self) -> Option<isize>
Cast the value to isize.
If the value is a Lua Integer, try to convert it to isize or return None otherwise.
pub fn as_usize(&self) -> Option<usize>
pub fn as_usize(&self) -> Option<usize>
Cast the value to usize.
If the value is a Lua Integer, try to convert it to usize or return None otherwise.
pub fn as_f32(&self) -> Option<f32>
pub fn as_f32(&self) -> Option<f32>
Cast the value to f32.
If the value is a Lua Number, try to convert it to f32 or return None otherwise.
pub fn as_f64(&self) -> Option<f64>
pub fn as_f64(&self) -> Option<f64>
Cast the value to f64.
If the value is a Lua Number, try to convert it to f64 or return None otherwise.
pub fn as_str(&self) -> Option<BorrowedStr<'_>>
👎Deprecated since 0.11.0: This method does not follow Rust naming convention. Use as_string().and_then(|s| s.to_str().ok()) instead.
pub fn as_str(&self) -> Option<BorrowedStr<'_>>
as_string().and_then(|s| s.to_str().ok()) instead.Cast the value to BorrowedStr.
If the value is a Lua String, try to convert it to BorrowedStr or return None
otherwise.
pub fn as_string_lossy(&self) -> Option<String>
👎Deprecated since 0.11.0: This method does not follow Rust naming convention. Use as_string().map(|s| s.to_string_lossy()) instead.
pub fn as_string_lossy(&self) -> Option<String>
as_string().map(|s| s.to_string_lossy()) instead.pub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Returns true if the value is a Lua Function.
pub fn as_function(&self) -> Option<&Function>
pub fn as_function(&self) -> Option<&Function>
pub fn is_userdata(&self) -> bool
pub fn is_userdata(&self) -> bool
Returns true if the value is an AnyUserData.
pub fn as_userdata(&self) -> Option<&AnyUserData>
pub fn as_userdata(&self) -> Option<&AnyUserData>
Cast the value to AnyUserData.
If the value is an AnyUserData, returns it or None otherwise.
Trait Implementations§
§impl FromIterator<Value> for MultiValue
impl FromIterator<Value> for MultiValue
§fn from_iter<I>(iter: I) -> MultiValuewhere
I: IntoIterator<Item = Value>,
fn from_iter<I>(iter: I) -> MultiValuewhere
I: IntoIterator<Item = Value>,
Auto Trait Implementations§
impl Freeze for Value
impl !RefUnwindSafe for Value
impl !Send for Value
impl !Sync for Value
impl Unpin for Value
impl !UnwindSafe for Value
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FromLuaMulti for Twhere
T: FromLua,
impl<T> FromLuaMulti for Twhere
T: FromLua,
§fn from_lua_multi(values: MultiValue, lua: &Lua) -> Result<T, Error>
fn from_lua_multi(values: MultiValue, lua: &Lua) -> Result<T, Error>
fn from_lua_args( args: MultiValue, i: usize, to: Option<&str>, lua: &Lua, ) -> Result<T, Error>
unsafe fn from_stack_multi(nvals: i32, lua: &RawLua) -> Result<T, Error>
unsafe fn from_stack_args( nargs: i32, i: usize, to: Option<&str>, lua: &RawLua, ) -> Result<T, Error>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoLuaMulti for Twhere
T: IntoLua,
impl<T> IntoLuaMulti for Twhere
T: IntoLua,
§fn into_lua_multi(self, lua: &Lua) -> Result<MultiValue, Error>
fn into_lua_multi(self, lua: &Lua) -> Result<MultiValue, Error>
unsafe fn push_into_stack_multi(self, lua: &RawLua) -> Result<i32, Error>
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
§type Error = Infallible
type Error = Infallible
Result.§fn into_result(self) -> Result<T, <T as IntoResult<T>>::Error>
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Error>
Result.§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more