pub enum PythonExpr {
Show 26 variants
Lit(PythonLit),
Var(String),
BinOp(String, Box<PythonExpr>, Box<PythonExpr>),
UnaryOp(String, Box<PythonExpr>),
Call(Box<PythonExpr>, Vec<PythonExpr>, Vec<(String, PythonExpr)>),
Attr(Box<PythonExpr>, String),
Subscript(Box<PythonExpr>, Box<PythonExpr>),
Lambda(Vec<String>, Box<PythonExpr>),
IfExpr(Box<PythonExpr>, Box<PythonExpr>, Box<PythonExpr>),
ListComp(Box<PythonExpr>, String, Box<PythonExpr>, Option<Box<PythonExpr>>),
DictComp(Box<PythonExpr>, Box<PythonExpr>, String, String, Box<PythonExpr>),
SetComp(Box<PythonExpr>, String, Box<PythonExpr>, Option<Box<PythonExpr>>),
GenExpr(Box<PythonExpr>, String, Box<PythonExpr>, Option<Box<PythonExpr>>),
Tuple(Vec<PythonExpr>),
List(Vec<PythonExpr>),
Dict(Vec<(PythonExpr, PythonExpr)>),
Set(Vec<PythonExpr>),
Await(Box<PythonExpr>),
Yield(Option<Box<PythonExpr>>),
YieldFrom(Box<PythonExpr>),
Match(Box<PythonExpr>),
FString(Vec<FStringPart>),
Walrus(String, Box<PythonExpr>),
Star(Box<PythonExpr>),
DoubleStar(Box<PythonExpr>),
Slice(Option<Box<PythonExpr>>, Option<Box<PythonExpr>>, Option<Box<PythonExpr>>),
}Expand description
Python expression for code generation.
Variants§
Lit(PythonLit)
A literal value: 42, "hello", True, None, etc.
Var(String)
A variable identifier: x, my_var
BinOp(String, Box<PythonExpr>, Box<PythonExpr>)
Binary operator: lhs + rhs, a == b, etc.
UnaryOp(String, Box<PythonExpr>)
Unary operator: -x, not x, ~x
Call(Box<PythonExpr>, Vec<PythonExpr>, Vec<(String, PythonExpr)>)
Function call: f(a, b, key=val)
Attr(Box<PythonExpr>, String)
Attribute access: obj.field
Subscript(Box<PythonExpr>, Box<PythonExpr>)
Subscript: obj[idx]
Lambda(Vec<String>, Box<PythonExpr>)
Lambda expression: lambda x, y: x + y
IfExpr(Box<PythonExpr>, Box<PythonExpr>, Box<PythonExpr>)
Conditional (ternary) expression: a if cond else b
ListComp(Box<PythonExpr>, String, Box<PythonExpr>, Option<Box<PythonExpr>>)
List comprehension: [expr for var in iter if cond]
DictComp(Box<PythonExpr>, Box<PythonExpr>, String, String, Box<PythonExpr>)
Dict comprehension: {k: v for k, v in items}
SetComp(Box<PythonExpr>, String, Box<PythonExpr>, Option<Box<PythonExpr>>)
Set comprehension: {x for x in iter}
GenExpr(Box<PythonExpr>, String, Box<PythonExpr>, Option<Box<PythonExpr>>)
Generator expression: (expr for var in iter if cond)
Tuple(Vec<PythonExpr>)
Tuple literal: (a, b, c) or a, b, c
List(Vec<PythonExpr>)
List literal: [a, b, c]
Dict(Vec<(PythonExpr, PythonExpr)>)
Dict literal: {"key": val, ...}
Set(Vec<PythonExpr>)
Set literal: {a, b, c}
Await(Box<PythonExpr>)
Await expression: await expr
Yield(Option<Box<PythonExpr>>)
Yield expression: yield expr
YieldFrom(Box<PythonExpr>)
Yield from expression: yield from expr
Match(Box<PythonExpr>)
Match expression (Python 3.10+): used as target in match stmt
FString(Vec<FStringPart>)
f-string: f"hello {name}!"
Walrus(String, Box<PythonExpr>)
Walrus operator (assignment expression): name := expr
Star(Box<PythonExpr>)
Star expression: *args
DoubleStar(Box<PythonExpr>)
Double-star expression: **kwargs
Slice(Option<Box<PythonExpr>>, Option<Box<PythonExpr>>, Option<Box<PythonExpr>>)
Slice: a:b:c
Trait Implementations§
Source§impl Clone for PythonExpr
impl Clone for PythonExpr
Source§fn clone(&self) -> PythonExpr
fn clone(&self) -> PythonExpr
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more