#[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
lua54 or lua53 or luau only.The floor division (//) operator.
BAnd
lua54 or lua53 only.The bitwise AND (&) operator.
BOr
lua54 or lua53 only.The bitwise OR (|) operator.
BXor
lua54 or lua53 only.The bitwise XOR (binary ~) operator.
BNot
lua54 or lua53 only.The bitwise NOT (unary ~) operator.
Shl
lua54 or lua53 only.The bitwise left shift (<<) operator.
Shr
lua54 or lua53 only.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
lua54 or lua53 or lua52 or luajit52 only.The __pairs metamethod.
This is not an operator, but it will be called by the built-in pairs function.
IPairs
lua52 or luajit52 only.The __ipairs metamethod.
This is not an operator, but it will be called by the built-in ipairs function.
Iter
luau only.The __iter metamethod.
Executed before the iteration begins, and should return an iterator function like next
(or a custom one).
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.
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 From<MetaMethod> for String
impl From<MetaMethod> for String
Source§fn from(method: MetaMethod) -> Self
fn from(method: MetaMethod) -> Self
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