1#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
18
19pub mod analyze;
20pub mod bytecode;
21pub mod colors;
22pub mod compile;
23pub mod diagnostics;
24pub mod emit;
25pub mod engine;
26pub mod parser;
27pub mod query;
28pub mod type_system;
29pub mod typegen;
30
31pub type PassResult<T> = std::result::Result<(T, Diagnostics), Error>;
36
37pub use colors::Colors;
38pub use diagnostics::{Diagnostics, DiagnosticsPrinter, Severity, Span};
39pub use query::{Query, QueryBuilder};
40pub use query::{SourceId, SourceMap};
41
42#[derive(Debug, Clone, thiserror::Error)]
44pub enum Error {
45 #[error("execution limit exceeded")]
47 ExecFuelExhausted,
48
49 #[error("recursion limit exceeded")]
51 RecursionLimitExceeded,
52
53 #[error("query parsing failed with {} errors", .0.error_count())]
54 QueryParseError(Diagnostics),
55
56 #[error("query analysis failed with {} errors", .0.error_count())]
57 QueryAnalyzeError(Diagnostics),
58}
59
60pub type Result<T> = std::result::Result<T, Error>;