reliar-store-postgres 0.9.0

PostgreSQL provider for the Reliar transactional outbox and inbox: migrations, migrate(), enqueue and the SKIP LOCKED claim.
Documentation
#![allow(dead_code, unused_imports)]
//! Shared test fixtures for the single-binary Postgres harness (RELIAR-27): a minimal `Message`
//! body, two `Serializer` fixtures, and the real-Postgres harness itself (§8.2).
//!
//! [`inbox`] holds the inbox scenario files' own fixtures (a throwaway business table + two
//! `InboxHandler`s) — kept in its own file since none of it is outbox-shaped. [`faults`] holds
//! `FaultyStore`, the store-fault decorator (ADR 0043 §4); [`transport`] holds `StubTransport`,
//! its `Publisher`-side counterpart (ADR 0043 A.1) — succeed, stall or panic, never fail;
//! [`metrics`] holds `CountingMetrics`, a harness-local `OutboxMetrics` recorder (ADR 0043 A.5).
//! [`decorators`] holds the claim-shaping
//! decorators (`OverDeliveringStore`, `CountingStore`, `PoisoningStore`) the dispatcher's
//! claim-cadence and concurrency trials wrap `PostgresOutboxStore` in. [`db`] owns the shared
//! container and the migrated-template-per-test harness; [`seed`], [`time`] and [`wait`] are the
//! scenario-seeding, SQL-time-travel and bounded-poll helpers built on top of it; [`recorder`]
//! installs the recording `tracing` subscriber the second phase's trials use.
//!
//! **The one thing that changed for RELIAR-27**: the shared `ContainerAsync` is never stored in
//! a `static`. A `static` is never dropped at process exit, so `Drop` — the *only* container
//! removal path in `testcontainers` 0.27 (there is no Ryuk/reaper) — never ran; combined with
//! one container-starting binary per scenario file, that leaked one Postgres container (with
//! its volumes) per file, per run. [`db::start_shared_container`] instead returns the container
//! to its caller (`tests/postgres/main.rs`), which keeps it as a **local** for the process's
//! whole lifetime and drops it explicitly before exiting — see that file's module docs.

pub(crate) mod db;
pub(crate) mod decorators;
pub(crate) mod faults;
pub(crate) mod fixtures;
pub(crate) mod inbox;
pub(crate) mod metrics;
pub(crate) mod recorder;
pub(crate) mod seed;
pub(crate) mod time;
pub(crate) mod transport;
pub(crate) mod wait;

pub(crate) use db::*;
pub(crate) use fixtures::*;
pub(crate) use recorder::*;
pub(crate) use seed::*;
pub(crate) use time::*;
pub(crate) use wait::*;