Skip to main content

fraiseql_core/compiler/
mod.rs

1//! Compiler sub-modules for FraiseQL v2.
2//!
3//! # Overview
4//!
5//! This module contains:
6//!
7//! - **Parser / IR / Validator** — parse authoring-time JSON into an intermediate representation
8//!   (`AuthoringIR`) and validate it. Used by the CLI `validate-facts` command and by
9//!   `SchemaConverter` (in `fraiseql-cli`).
10//!
11//! - **Runtime sub-modules** — aggregate types, aggregation planning, fact tables, and window
12//!   functions, consumed by the runtime executor.
13
14pub mod aggregate_types;
15pub mod aggregation;
16pub mod enum_validator;
17pub mod fact_table;
18pub mod ir;
19pub mod parser;
20pub mod validator;
21pub mod window_allowlist;
22pub mod window_functions;
23
24pub use aggregate_types::{AggregateType, AggregateTypeGenerator, GroupByInput, HavingInput};
25pub use aggregation::{AggregationPlan, AggregationPlanner, AggregationRequest};
26pub use enum_validator::EnumValidator;
27pub use ir::{
28    AuthoringIR, AutoParams, IRArgument, IRField, IRMutation, IRQuery, IRSubscription, IRType,
29    MutationOperation,
30};
31pub use parser::SchemaParser;
32pub use validator::{SchemaValidationError, SchemaValidator};
33pub use window_functions::{WindowExecutionPlan, WindowFunction, WindowFunctionPlanner};
34
35#[cfg(test)]
36mod tests;