pub enum SwiftExpr {
Show 20 variants
SwiftLitExpr(SwiftLit),
SwiftVar(String),
SwiftCall {
callee: Box<SwiftExpr>,
args: Vec<(String, SwiftExpr)>,
},
SwiftBinOp {
op: String,
lhs: Box<SwiftExpr>,
rhs: Box<SwiftExpr>,
},
SwiftMember(Box<SwiftExpr>, String),
SwiftSubscript(Box<SwiftExpr>, Box<SwiftExpr>),
SwiftUnary(String, Box<SwiftExpr>),
SwiftTernary(Box<SwiftExpr>, Box<SwiftExpr>, Box<SwiftExpr>),
SwiftClosure {
params: Vec<(String, Option<SwiftType>)>,
return_type: Option<SwiftType>,
body: Vec<SwiftStmt>,
},
SwiftSwitchExpr {
subject: Box<SwiftExpr>,
arms: Vec<(String, SwiftExpr)>,
},
SwiftOptionalChain(Box<SwiftExpr>, String),
SwiftForceUnwrap(Box<SwiftExpr>),
SwiftArrayLit(Vec<SwiftExpr>),
SwiftDictLit(Vec<(SwiftExpr, SwiftExpr)>),
SwiftTupleLit(Vec<SwiftExpr>),
SwiftAs(Box<SwiftExpr>, SwiftType),
SwiftTry(Box<SwiftExpr>),
SwiftAwait(Box<SwiftExpr>),
SwiftSelf,
SwiftSuper,
}Expand description
Swift expression for code generation.
Variants§
SwiftLitExpr(SwiftLit)
A literal value: 42, "hello", true, nil
SwiftVar(String)
A variable or identifier: x, myVar, MyType
SwiftCall
A function/method call: f(a, b)
Fields
SwiftBinOp
Binary operator: lhs + rhs, a == b
SwiftMember(Box<SwiftExpr>, String)
Member access: obj.field
SwiftSubscript(Box<SwiftExpr>, Box<SwiftExpr>)
Subscript: arr[idx]
SwiftUnary(String, Box<SwiftExpr>)
Unary prefix operator: !x, -n
SwiftTernary(Box<SwiftExpr>, Box<SwiftExpr>, Box<SwiftExpr>)
Ternary conditional: cond ? then : else
SwiftClosure
Closure expression: { params in body }
Fields
SwiftSwitchExpr
Switch expression (Swift 5.9+): switch x { case .a: expr }
Fields
SwiftOptionalChain(Box<SwiftExpr>, String)
Optional chaining: obj?.field
SwiftForceUnwrap(Box<SwiftExpr>)
Force unwrap: expr!
SwiftArrayLit(Vec<SwiftExpr>)
Array literal: [a, b, c]
SwiftDictLit(Vec<(SwiftExpr, SwiftExpr)>)
Dictionary literal: [k1: v1, k2: v2]
SwiftTupleLit(Vec<SwiftExpr>)
Tuple literal: (a, b)
SwiftAs(Box<SwiftExpr>, SwiftType)
Type cast: expr as Type
SwiftTry(Box<SwiftExpr>)
Try expression: try expr
SwiftAwait(Box<SwiftExpr>)
Await expression: await expr
SwiftSelf
Self reference
SwiftSuper
Super reference
Trait Implementations§
impl StructuralPartialEq for SwiftExpr
Auto Trait Implementations§
impl Freeze for SwiftExpr
impl RefUnwindSafe for SwiftExpr
impl Send for SwiftExpr
impl Sync for SwiftExpr
impl Unpin for SwiftExpr
impl UnsafeUnpin for SwiftExpr
impl UnwindSafe for SwiftExpr
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
Mutably borrows from an owned value. Read more