bsql_core/lib.rs
1#![forbid(unsafe_code)]
2
3//! Runtime support for bsql.
4//!
5//! This crate provides the types that `bsql::query!` generated code depends on:
6//! error types, connection pool, and the executor trait.
7//!
8//! You should not depend on this crate directly — use [`bsql`] instead.
9
10/// Re-export `postgres_types` so generated code (pg_enum) can reference it
11/// via `::bsql_core::pg_types::*` without requiring users to add
12/// `postgres-types` as a direct dependency.
13pub use postgres_types as pg_types;
14
15pub mod error;
16pub mod executor;
17pub mod listener;
18pub mod pool;
19pub(crate) mod singleflight;
20pub mod stream;
21pub mod transaction;
22pub mod types;
23
24/// Re-exports from `tokio-postgres` and `postgres-types` used by generated code.
25/// This avoids requiring users to add `tokio-postgres` to their dependencies.
26pub mod pg {
27 pub use postgres_types::ToSql;
28 pub use tokio_postgres::Row;
29}
30
31/// Re-export `futures_core::Stream` so consumers can use `QueryStream`
32/// without adding `futures-core` as a direct dependency.
33pub use futures_core::Stream;
34
35pub use error::{BsqlError, BsqlResult};
36pub use executor::Executor;
37pub use listener::{Listener, Notification};
38pub use pool::{Pool, PoolBuilder, PoolConnection, PoolStatus};
39pub use stream::QueryStream;
40pub use transaction::Transaction;