pub enum OperatorPrecedence {
Show 21 variants
None,
Yield,
Assign,
Starred,
Lambda,
IfElse,
Or,
And,
Not,
ComparisonsMembershipIdentity,
BitOr,
BitXor,
BitAnd,
LeftRightShift,
AddSub,
MulDivRemain,
PosNegBitNot,
Exponent,
Await,
CallAttribute,
Atomic,
}Expand description
Represents the precedence levels for Python expressions. Variants at the top have lower precedence and variants at the bottom have higher precedence.
See: https://docs.python.org/3/reference/expressions.html#operator-precedence
Variants§
None
The lowest (virtual) precedence level
Yield
Precedence of yield and yield from expressions.
Assign
Precedence of assignment expressions (name := expr).
Starred
Precedence of starred expressions (*expr).
Lambda
Precedence of lambda expressions (lambda args: expr).
IfElse
Precedence of if/else expressions (expr if cond else expr).
Or
Precedence of boolean or expressions.
And
Precedence of boolean and expressions.
Not
Precedence of boolean not expressions.
ComparisonsMembershipIdentity
Precedence of comparisons (<, <=, >, >=, !=, ==),
memberships (in, not in) and identity tests (is, is not).
BitOr
Precedence of bitwise | operator.
BitXor
Precedence of bitwise ^ operator.
BitAnd
Precedence of bitwise & operator.
LeftRightShift
Precedence of left and right shift expressions (<<, >>).
AddSub
Precedence of addition and subtraction expressions (+, -).
MulDivRemain
Precedence of multiplication (*), matrix multiplication (@), division (/),
floor division (//) and remainder (%) expressions.
PosNegBitNot
Precedence of unary positive (+), negative (-), and bitwise NOT (~) expressions.
Exponent
Precedence of exponentiation expressions (**).
Await
Precedence of await expressions.
CallAttribute
Precedence of call expressions (()), attribute access (.), and subscript ([]) expressions.
Atomic
Precedence of atomic expressions (literals, names, containers).
Implementations§
Source§impl OperatorPrecedence
impl OperatorPrecedence
pub fn from_expr_ref(expr: &ExprRef<'_>) -> Self
pub fn from_expr(expr: &Expr) -> Self
Sourcepub fn is_right_associative(self) -> bool
pub fn is_right_associative(self) -> bool
Returns true if the precedence is right-associative i.e., the operations are evaluated
from right to left.
Trait Implementations§
Source§impl Clone for OperatorPrecedence
impl Clone for OperatorPrecedence
Source§fn clone(&self) -> OperatorPrecedence
fn clone(&self) -> OperatorPrecedence
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OperatorPrecedence
impl Debug for OperatorPrecedence
Source§impl From<&Expr> for OperatorPrecedence
impl From<&Expr> for OperatorPrecedence
Source§impl<'a> From<&ExprRef<'a>> for OperatorPrecedence
impl<'a> From<&ExprRef<'a>> for OperatorPrecedence
Source§impl From<BoolOp> for OperatorPrecedence
impl From<BoolOp> for OperatorPrecedence
Source§impl From<Operator> for OperatorPrecedence
impl From<Operator> for OperatorPrecedence
Source§impl From<UnaryOp> for OperatorPrecedence
impl From<UnaryOp> for OperatorPrecedence
Source§impl Ord for OperatorPrecedence
impl Ord for OperatorPrecedence
Source§fn cmp(&self, other: &OperatorPrecedence) -> Ordering
fn cmp(&self, other: &OperatorPrecedence) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for OperatorPrecedence
impl PartialEq for OperatorPrecedence
Source§impl PartialOrd for OperatorPrecedence
impl PartialOrd for OperatorPrecedence
impl Copy for OperatorPrecedence
impl Eq for OperatorPrecedence
impl StructuralPartialEq for OperatorPrecedence
Auto Trait Implementations§
impl Freeze for OperatorPrecedence
impl RefUnwindSafe for OperatorPrecedence
impl Send for OperatorPrecedence
impl Sync for OperatorPrecedence
impl Unpin for OperatorPrecedence
impl UnsafeUnpin for OperatorPrecedence
impl UnwindSafe for OperatorPrecedence
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