1#![forbid(unsafe_code)]
16#![deny(missing_docs)]
17#![allow(clippy::doc_markdown)]
21#![allow(clippy::match_same_arms)]
25#![allow(clippy::too_many_arguments)]
30#![allow(clippy::match_wildcard_for_single_variants)]
35
36pub type Result<T> = std::result::Result<T, fraiseql_error::FraiseQLError>;
38
39pub mod collation_config;
41pub mod dialect;
42pub mod filters;
43pub mod introspector;
44pub mod types;
45pub mod where_generator;
46
47pub(crate) mod utils;
49
50pub mod collation;
52pub mod identifier;
53pub mod order_by;
54pub mod path_escape;
55pub mod projection_generator;
56pub mod traits;
57pub mod view_name;
58pub mod where_clause;
59pub mod where_sql_generator;
60
61#[cfg(feature = "postgres")]
62pub mod postgres;
63
64#[cfg(feature = "mysql")]
65pub mod mysql;
66
67#[cfg(feature = "sqlite")]
68pub mod sqlite;
69
70#[cfg(feature = "sqlserver")]
71pub mod sqlserver;
72
73#[cfg(feature = "wire-backend")]
74pub mod wire_pool;
75
76#[cfg(feature = "wire-backend")]
77pub mod fraiseql_wire_adapter;
78
79pub use collation::{CollationCapabilities, CollationMapper};
81pub use collation_config::{
82 CollationConfig, DatabaseCollationOverrides, InvalidLocaleStrategy, MySqlCollationConfig,
83 PostgresCollationConfig, SqlServerCollationConfig, SqliteCollationConfig,
84};
85pub use dialect::{
86 DialectCapabilityGuard, Feature, MySqlDialect, PostgresDialect, SqlDialect, SqlServerDialect,
87 SqliteDialect, UnsupportedOperator,
88};
89#[cfg(feature = "wire-backend")]
90pub use fraiseql_wire_adapter::FraiseWireAdapter;
91pub use identifier::{
92 quote_mysql_identifier, quote_postgres_identifier, quote_sqlite_identifier,
93 quote_sqlserver_identifier,
94};
95pub use introspector::{DatabaseIntrospector, RelationInfo, RelationKind};
96#[cfg(feature = "mysql")]
97pub use mysql::{MySqlAdapter, MySqlIntrospector};
98#[cfg(feature = "postgres")]
99pub use postgres::{PostgresAdapter, PostgresIntrospector};
100pub use projection_generator::{
101 FieldKind, MySqlProjectionGenerator, PostgresProjectionGenerator, ProjectionField,
102 SqliteProjectionGenerator,
103};
104#[cfg(feature = "sqlite")]
105pub use sqlite::{SqliteAdapter, SqliteIntrospector};
106#[cfg(feature = "sqlserver")]
107pub use sqlserver::{SqlServerAdapter, SqlServerIntrospector};
108pub use traits::{
109 ArcDatabaseAdapter, BoxDatabaseAdapter, CursorValue, DatabaseAdapter, DatabaseCapabilities,
110 DirectMutationContext, DirectMutationOp, MutationStrategy, ProjectionRequest,
111 RelayDatabaseAdapter, RelayPageResult, SupportsMutations,
112};
113pub use types::{
114 DatabaseType, JsonbValue, PoolMetrics, QueryStatEntry,
115 sql_hints::{OrderByClause, OrderByFieldType, OrderDirection, SqlProjectionHint},
116};
117pub use view_name::ViewName;
118pub use where_clause::{HavingClause, WhereClause, WhereOperator};
119pub use where_generator::GenericWhereGenerator;
120pub use where_sql_generator::WhereSqlGenerator;