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 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.