#[cfg(feature = "redis")]
pub mod redis;
#[cfg(feature = "postgres")]
pub mod sql;
use pyo3::{prelude::*, pymodule};
#[pymodule]
pub fn infrastructure(_: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> {
#[cfg(not(any(feature = "redis", feature = "postgres")))]
let _ = m;
#[cfg(feature = "redis")]
m.add_class::<crate::redis::cache::RedisCacheConfig>()?;
#[cfg(feature = "redis")]
m.add_class::<crate::redis::cache::RedisCacheDatabase>()?;
#[cfg(feature = "redis")]
m.add_class::<crate::redis::msgbus::RedisMessageBusConfig>()?;
#[cfg(feature = "postgres")]
m.add_class::<crate::sql::cache::PostgresCacheConfig>()?;
#[cfg(feature = "postgres")]
m.add_class::<crate::sql::cache::PostgresCacheDatabase>()?;
#[cfg(feature = "postgres")]
m.add_class::<crate::sql::pg::PostgresConnectOptions>()?;
Ok(())
}