The addition operator +
.
The addition assignment operator +=
.
The bitwise AND operator &
.
The bitwise AND assignment operator &=
.
The bitwise OR operator |
.
The bitwise OR assignment operator |=
.
The bitwise XOR operator ^
.
The bitwise XOR assignment operator ^=
.
Used for immutable dereferencing operations, like *v
.
Used for mutable dereferencing operations, like in *v = 1;
.
The division operator /
.
The division assignment operator /=
.
Custom code within the destructor.
The version of the call operator that takes an immutable receiver.
The version of the call operator that takes a mutable receiver.
The version of the call operator that takes a by-value receiver.
Used for indexing operations (container[index]
) in immutable contexts.
Used for indexing operations (container[index]
) in mutable contexts.
The multiplication operator *
.
The multiplication assignment operator *=
.
The unary negation operator -
.
The unary logical negation operator !
.
RangeBounds
is implemented by Rust’s built-in range types, produced
by range syntax like ..
, a..
, ..b
, ..=c
, d..e
, or f..=g
.
The remainder operator %
.
The remainder assignment operator %=
.
The left shift operator <<
. Note that because this trait is implemented
for all integer types with multiple right-hand-side types, Rust’s type
checker has special handling for _ << _
, setting the result type for
integer operations to the type of the left-hand-side operand. This means
that though a << b
and a.shl(b)
are one and the same from an evaluation
standpoint, they are different when it comes to type inference.
The left shift assignment operator <<=
.
The right shift operator >>
. Note that because this trait is implemented
for all integer types with multiple right-hand-side types, Rust’s type
checker has special handling for _ >> _
, setting the result type for
integer operations to the type of the left-hand-side operand. This means
that though a >> b
and a.shr(b)
are one and the same from an evaluation
standpoint, they are different when it comes to type inference.
The right shift assignment operator >>=
.
The subtraction operator -
.
The subtraction assignment operator -=
.
An async-aware version of the
Fn
trait.
An async-aware version of the
FnMut
trait.
An async-aware version of the
FnOnce
trait.
Trait that indicates that this is a pointer or a wrapper for one,
where unsizing can be performed on the pointee.
The trait implemented by builtin coroutine types.
Perma-unstable marker trait. Indicates that the type has a well-behaved
Deref
(and, if applicable,
DerefMut
) implementation. This is relied on for soundness
of deref patterns.
DispatchFromDyn
is used in the implementation of dyn-compatibility checks (specifically
allowing arbitrary self types), to guarantee that a method’s receiver type can be dispatched on.
Used to specify which residuals can be converted into which
crate::ops::Try
types.
OneSidedRange
is implemented for built-in range types that are unbounded
on one side. For example, a..
, ..b
and ..=c
implement OneSidedRange
,
but ..
, d..e
, and f..=g
do not.
Allows retrieving the canonical type implementing
Try
that has this type
as its residual and allows it to hold an
O
as its output.
The ?
operator and try {}
blocks.