#![allow(clippy::expect_used, clippy::missing_fields_in_debug)]
#![warn(missing_docs)]
#![warn(unreachable_pub)]
#![allow(dead_code)]
#[cfg(test)]
mod tests;
mod error;
pub mod events;
mod isolation;
mod manager;
mod propagation;
mod registry;
mod request_ext;
#[cfg(feature = "sqlx")]
mod sqlx_manager;
mod status;
pub mod synchronization;
mod template;
mod transaction;
mod transactional;
pub use error::{TransactionError, TransactionResult};
pub use events::{
LoggingSynchronization, PhaseListener, SynchronizationRegistry, TransactionPhase,
TransactionSynchronization,
};
pub use isolation::IsolationLevel;
pub use manager::{
NoopTransactionManager, TransactionDefinition, TransactionManager, TransactionManagerBuilder,
global_tx_manager, set_global_tx_manager,
};
pub use propagation::Propagation;
pub use registry::{DelegatingTransactionManager, TransactionManagerRegistry};
pub use request_ext::{
TransactionContextExt, get_transaction_from_request, has_active_transaction_in_request,
};
pub use status::TransactionStatus;
pub use template::TransactionTemplate;
pub use transaction::Transaction;
pub use transactional::{Transactional, TransactionalOptions};
pub mod prelude {
pub use super::{
DelegatingTransactionManager, IsolationLevel, Propagation, Transaction, TransactionError,
TransactionManager, TransactionManagerRegistry, TransactionResult, TransactionStatus,
TransactionTemplate, Transactional,
};
}
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const DEFAULT_TX_TIMEOUT_SECS: u64 = 30;
pub const DEFAULT_TX_NAME: &str = "default";
#[cfg(feature = "sqlx")]
pub use sqlx_manager::{
DatabaseType, MySqlTransactionManager, PostgresTransactionManager, SqliteTransactionManager,
SqlxTransactionManager,
};