/** * Rust expression visitor — Expr IR → Rust source fragments. */ import { Expr, TypeRegistry } from "../../ir/expansion.js"; import { ExprVisitor } from "../../ir/visitor.js"; export declare class RustExprVisitor implements ExprVisitor { registry?: TypeRegistry; constructor(registry?: TypeRegistry); visitExpr(expr: Expr): string; private visitConstruct; /** * Handle Construct on a polymorphic type — the discriminator field becomes an enum variant. * E.g., Property { kind: "boolean", example: v } → Property { kind: PropertyKind::Custom { kind_name: "boolean".to_string() }, example: Some(v.into()), ..Default::default() } */ private visitPolymorphicConstruct; private visitVariant; private visitArray; /** * Wrap field values appropriately for Rust — Option fields need Some(), * string fields need .into(), etc. */ private wrapFieldValue; private escapeString; private visitFieldRead; }