1use r2d2;
2use std::cell;
3
4#[cfg(feature = "ssl")]
5mod config_ssl;
6#[cfg(feature = "rust-tls")]
7mod config_rustls;
8mod config_tcp;
9mod generic_connection_pool;
10mod pager;
11pub mod session;
12#[cfg(feature = "ssl")]
13mod ssl_connection_pool;
14#[cfg(feature = "rust-tls")]
15mod rustls_connection_pool;
16mod tcp_connection_pool;
17
18#[cfg(feature = "ssl")]
19pub use crate::cluster::config_ssl::{ClusterSslConfig, NodeSslConfig, NodeSslConfigBuilder};
20#[cfg(feature = "rust-tls")]
21pub use crate::cluster::config_rustls::{ClusterRustlsConfig, NodeRustlsConfig, NodeRustlsConfigBuilder};
22pub use crate::cluster::config_tcp::{ClusterTcpConfig, NodeTcpConfig, NodeTcpConfigBuilder};
23pub use crate::cluster::pager::{PagerState, QueryPager, SessionPager};
24#[cfg(feature = "ssl")]
25pub use crate::cluster::ssl_connection_pool::{
26 new_ssl_pool, SslConnectionPool, SslConnectionsManager,
27};
28#[cfg(feature = "rust-tls")]
29pub use crate::cluster::rustls_connection_pool::{
30 new_rustls_pool, RustlsConnectionPool, RustlsConnectionsManager,
31};
32pub use crate::cluster::tcp_connection_pool::{
33 new_tcp_pool, startup, TcpConnectionPool, TcpConnectionsManager,
34};
35pub(crate) use generic_connection_pool::ConnectionPool;
36
37use crate::compression::Compression;
38use crate::error;
39use crate::query::{BatchExecutor, ExecExecutor, PrepareExecutor, QueryExecutor};
40use crate::transport::CDRSTransport;
41
42pub trait GetConnection<
45 T: CDRSTransport + Send + Sync + 'static,
46 M: r2d2::ManageConnection<Connection = cell::RefCell<T>, Error = error::Error>,
47>
48{
49 fn get_connection(&self) -> Option<r2d2::PooledConnection<M>>;
51}
52
53pub trait GetCompressor<'a> {
56 fn get_compressor(&self) -> Compression;
58}
59
60pub trait CDRSSession<
63 'a,
64 T: CDRSTransport + 'static,
65 M: r2d2::ManageConnection<Connection = cell::RefCell<T>, Error = error::Error>,
66>:
67 GetCompressor<'static>
68 + GetConnection<T, M>
69 + QueryExecutor<T, M>
70 + PrepareExecutor<T, M>
71 + ExecExecutor<T, M>
72 + BatchExecutor<T, M>
73{
74}