Skip to main content

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 mod stream;
20pub mod transaction;
21pub mod types;
22
23/// Re-exports from `tokio-postgres` and `postgres-types` used by generated code.
24/// This avoids requiring users to add `tokio-postgres` to their dependencies.
25pub mod pg {
26    pub use postgres_types::ToSql;
27    pub use tokio_postgres::Row;
28}
29
30/// Re-export `futures_core::Stream` so consumers can use `QueryStream`
31/// without adding `futures-core` as a direct dependency.
32pub use futures_core::Stream;
33
34pub use error::{BsqlError, BsqlResult};
35pub use executor::Executor;
36pub use listener::{Listener, Notification};
37pub use pool::{Pool, PoolBuilder, PoolConnection, PoolStatus};
38pub use stream::QueryStream;
39pub use transaction::Transaction;