Skip to main content

lora_ast/
lib.rs

1// AST node variants have deliberate size asymmetry (e.g. a full MATCH/WITH/RETURN
2// pipeline vs. a StandaloneCall). Boxing the large variants would trade fewer
3// stack copies for an extra heap allocation per parse — the opposite of what
4// the parser is tuned for. Self-referential cases that do need indirection
5// (e.g. `PatternElement::Parenthesized`) already box explicitly.
6#![allow(clippy::large_enum_variant)]
7
8pub mod ast;
9
10pub use ast::{
11    BinaryOp, CallSubquery, ConstraintKind, ConstraintNameSpec, Create, CreateConstraint,
12    CreateIndex, Delete, Direction, Document, DropConstraint, DropIndex, Expr, Foreach,
13    InQueryCall, IndexEntityKind, IndexKind, IndexKindFilter, IndexNameSpec, IndexOptions,
14    ListPredicateKind, LiteralTypeExpr, MapProjectionSelector, Match, Merge, MergeAction,
15    MultiPartQuery, NodePattern, Pattern, PatternElement, PatternElementChain, PatternPart,
16    ProcedureInvocation, ProcedureInvocationKind, ProcedureName, ProjectionBody, ProjectionItem,
17    PropertyTypeExpr, PropertyTypeTerm, Query, QueryPart, RangeLiteral, ReadingClause,
18    RegularQuery, RelationshipDetail, RelationshipPattern, Remove, RemoveItem, Return, ScalarType,
19    SchemaCommand, Set, SetItem, ShowConstraints, ShowIndexes, ShowPipeline, ShowReturn, ShowYield,
20    SinglePartQuery, SingleQuery, SortDirection, SortItem, Span, StandaloneCall, Statement,
21    UnaryOp, UnionPart, Unwind, UpdatingClause, Variable, VectorCoordType, With, YieldItem,
22};