reliar-store-postgres 0.9.0

PostgreSQL provider for the Reliar transactional outbox and inbox: migrations, migrate(), enqueue and the SKIP LOCKED claim.
Documentation
use sqlx::PgPool;

use super::OrderCreated;

/// Enqueues `n` plain [`OrderCreated`] envelopes and returns their [`reliar_core::MessageId`]s
/// in enqueue order.
pub(crate) async fn seed<Ser: reliar_core::Serializer + Send + Sync + 'static>(
    store: &reliar_store_postgres::PostgresOutboxStore<Ser>,
    pool: &PgPool,
    n: u64,
) -> Vec<reliar_core::Envelope<OrderCreated>> {
    use reliar_outbox::OutboxEnqueue;

    let mut envelopes = Vec::with_capacity(n as usize);

    for i in 0..n {
        let envelope = reliar_core::Envelope::builder(OrderCreated { order_id: i }).build();
        let mut tx = pool.begin().await.unwrap();

        store
            .enqueue_envelope(&mut tx, envelope.clone())
            .await
            .unwrap();
        tx.commit().await.unwrap();

        envelopes.push(envelope);
    }

    envelopes
}