#![forbid(unsafe_code)]
#![deny(missing_docs)]
#![allow(clippy::doc_markdown)]
#![allow(clippy::match_same_arms)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::match_wildcard_for_single_variants)]
pub type Result<T> = std::result::Result<T, fraiseql_error::FraiseQLError>;
pub mod collation_config;
pub mod dialect;
pub mod filters;
pub mod introspector;
pub mod types;
pub mod where_generator;
pub(crate) mod utils;
pub mod collation;
pub mod identifier;
pub mod order_by;
pub mod path_escape;
pub mod projection_generator;
pub mod traits;
pub mod where_clause;
pub mod where_sql_generator;
#[cfg(feature = "postgres")]
pub mod postgres;
#[cfg(feature = "mysql")]
pub mod mysql;
#[cfg(feature = "sqlite")]
pub mod sqlite;
#[cfg(feature = "sqlserver")]
pub mod sqlserver;
#[cfg(feature = "wire-backend")]
pub mod wire_pool;
#[cfg(feature = "wire-backend")]
pub mod fraiseql_wire_adapter;
pub use collation::{CollationCapabilities, CollationMapper};
pub use collation_config::{
CollationConfig, DatabaseCollationOverrides, InvalidLocaleStrategy, MySqlCollationConfig,
PostgresCollationConfig, SqlServerCollationConfig, SqliteCollationConfig,
};
pub use dialect::{
DialectCapabilityGuard, Feature, MySqlDialect, PostgresDialect, SqlDialect, SqlServerDialect,
SqliteDialect, UnsupportedOperator,
};
#[cfg(feature = "wire-backend")]
pub use fraiseql_wire_adapter::FraiseWireAdapter;
pub use identifier::{
quote_mysql_identifier, quote_postgres_identifier, quote_sqlite_identifier,
quote_sqlserver_identifier,
};
pub use introspector::{DatabaseIntrospector, RelationInfo, RelationKind};
#[cfg(feature = "mysql")]
pub use mysql::{MySqlAdapter, MySqlIntrospector};
#[cfg(feature = "postgres")]
pub use postgres::{PostgresAdapter, PostgresIntrospector};
pub use projection_generator::{
FieldKind, MySqlProjectionGenerator, PostgresProjectionGenerator, ProjectionField,
SqliteProjectionGenerator,
};
#[cfg(feature = "sqlite")]
pub use sqlite::{SqliteAdapter, SqliteIntrospector};
#[cfg(feature = "sqlserver")]
pub use sqlserver::{SqlServerAdapter, SqlServerIntrospector};
pub use traits::{
ArcDatabaseAdapter, BoxDatabaseAdapter, CursorValue, DatabaseAdapter, DatabaseCapabilities,
DirectMutationContext, DirectMutationOp, MutationStrategy, RelayDatabaseAdapter,
RelayPageResult, SupportsMutations,
};
pub use types::{
DatabaseType, JsonbValue, PoolMetrics,
sql_hints::{OrderByClause, OrderByFieldType, OrderDirection, SqlProjectionHint},
};
pub use where_clause::{HavingClause, WhereClause, WhereOperator};
pub use where_generator::GenericWhereGenerator;
pub use where_sql_generator::WhereSqlGenerator;