Skip to main content

flowscope_core/
lib.rs

1pub mod analyzer;
2pub mod completion;
3pub mod error;
4pub mod extractors;
5pub mod generated;
6pub mod linter;
7pub mod parser;
8#[cfg(feature = "templating")]
9pub mod templater;
10pub mod types;
11
12// Re-export main types and functions
13pub use analyzer::{analyze, split_statements};
14pub use completion::{completion_context, completion_items};
15pub use error::ParseError;
16pub use extractors::extract_tables;
17pub use linter::config::LintConfig;
18pub use parser::{parse_sql, parse_sql_with_dialect};
19
20// Re-export types explicitly
21pub use types::{
22    // Issue codes
23    issue_codes,
24    // Request types
25    AggregationInfo,
26    AnalysisOptions,
27    AnalyzeRequest,
28    // Response types
29    AnalyzeResult,
30    CanonicalName,
31    CaseSensitivity,
32    ColumnSchema,
33    CompletionClause,
34    CompletionContext,
35    CompletionItem,
36    CompletionItemCategory,
37    CompletionItemKind,
38    CompletionItemsResult,
39    CompletionRequest,
40    ConstraintType,
41    Dialect,
42    Edge,
43    EdgeType,
44    FileSource,
45    FilterClauseType,
46    FilterPredicate,
47    ForeignKeyRef,
48    GlobalEdge,
49    GlobalLineage,
50    GlobalNode,
51    Issue,
52    IssueAutofix,
53    IssueAutofixApplicability,
54    IssueCount,
55    IssuePatchEdit,
56    JoinType,
57    // Legacy
58    LineageResult,
59    Node,
60    NodeType,
61    ResolutionSource,
62    ResolvedColumnSchema,
63    ResolvedSchemaMetadata,
64    ResolvedSchemaTable,
65    SchemaMetadata,
66    SchemaNamespaceHint,
67    SchemaOrigin,
68    SchemaTable,
69    Severity,
70    Span,
71    StatementLineage,
72    StatementRef,
73    StatementSplitRequest,
74    StatementSplitResult,
75    Summary,
76    TableConstraintInfo,
77};
78
79// Re-export template types when the templating feature is enabled
80#[cfg(feature = "templating")]
81pub use templater::{TemplateConfig, TemplateError, TemplateMode};
82
83// Test utilities and helper exposure (must be at end of file)
84#[cfg(test)]
85pub mod test_utils;
86
87#[cfg(test)]
88pub mod analyzer_helpers {
89    pub use crate::analyzer::helpers;
90}