Enum mlua::MetaMethod
source · #[non_exhaustive]pub enum MetaMethod {
Show 27 variants
Add,
Sub,
Mul,
Div,
Mod,
Pow,
Unm,
IDiv,
BAnd,
BOr,
BXor,
BNot,
Shl,
Shr,
Concat,
Len,
Eq,
Lt,
Le,
Index,
NewIndex,
Call,
ToString,
Pairs,
IPairs,
Iter,
Close,
}
Expand description
Kinds of metamethods that can be overridden.
Currently, this mechanism does not allow overriding the __gc
metamethod, since there is
generally no need to do so: UserData
implementors can instead just implement Drop
.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Add
The +
operator.
Sub
The -
operator.
Mul
The *
operator.
Div
The /
operator.
Mod
The %
operator.
Pow
The ^
operator.
Unm
The unary minus (-
) operator.
IDiv
The floor division (//) operator.
Requires feature = "lua54/lua53/luau"
BAnd
The bitwise AND (&) operator.
Requires feature = "lua54/lua53"
BOr
The bitwise OR (|) operator.
Requires feature = "lua54/lua53"
BXor
The bitwise XOR (binary ~) operator.
Requires feature = "lua54/lua53"
BNot
The bitwise NOT (unary ~) operator.
Requires feature = "lua54/lua53"
Shl
The bitwise left shift (<<) operator.
Shr
The bitwise right shift (>>) operator.
Concat
The string concatenation operator ..
.
Len
The length operator #
.
Eq
The ==
operator.
Lt
The <
operator.
Le
The <=
operator.
Index
Index access obj[key]
.
NewIndex
Index write access obj[key] = value
.
Call
The call “operator” obj(arg1, args2, ...)
.
ToString
The __tostring
metamethod.
This is not an operator, but will be called by methods such as tostring
and print
.
Pairs
The __pairs
metamethod.
This is not an operator, but it will be called by the built-in pairs
function.
Requires feature = "lua54/lua53/lua52"
IPairs
lua52
or luajit52
only.The __ipairs
metamethod.
This is not an operator, but it will be called by the built-in ipairs
function.
Requires feature = "lua52"
Iter
luau
only.The __iter
metamethod.
Executed before the iteration begins, and should return an iterator function like next
(or a custom one).
Requires feature = "lua"
Close
lua54
only.The __close
metamethod.
Executed when a variable, that marked as to-be-closed, goes out of scope.
More information about to-be-closed variabled can be found in the Lua 5.4 documentation.
Requires feature = "lua54"
Implementations§
Trait Implementations§
source§impl AsRef<str> for MetaMethod
impl AsRef<str> for MetaMethod
source§impl Clone for MetaMethod
impl Clone for MetaMethod
source§fn clone(&self) -> MetaMethod
fn clone(&self) -> MetaMethod
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MetaMethod
impl Debug for MetaMethod
source§impl Display for MetaMethod
impl Display for MetaMethod
source§impl Hash for MetaMethod
impl Hash for MetaMethod
source§impl PartialEq<MetaMethod> for &str
impl PartialEq<MetaMethod> for &str
source§fn eq(&self, other: &MetaMethod) -> bool
fn eq(&self, other: &MetaMethod) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<MetaMethod> for String
impl PartialEq<MetaMethod> for String
source§fn eq(&self, other: &MetaMethod) -> bool
fn eq(&self, other: &MetaMethod) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq for MetaMethod
impl PartialEq for MetaMethod
source§fn eq(&self, other: &MetaMethod) -> bool
fn eq(&self, other: &MetaMethod) -> bool
self
and other
values to be equal, and is used
by ==
.