#[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 variables 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§impl PartialEq<MetaMethod> for String
impl PartialEq<MetaMethod> for String
Source§impl PartialEq for MetaMethod
impl PartialEq for MetaMethod
impl Copy for MetaMethod
impl Eq for MetaMethod
impl StructuralPartialEq for MetaMethod
Auto Trait Implementations§
impl Freeze for MetaMethod
impl RefUnwindSafe for MetaMethod
impl Send for MetaMethod
impl Sync for MetaMethod
impl Unpin for MetaMethod
impl UnwindSafe for MetaMethod
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,
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