ruststream-sqlx 0.7.0

SQL databases for the RustStream messaging framework through sqlx: a transactional outbox over any RustStream broker and task queues in Postgres, MySQL/MariaDB and SQLite tables.
Documentation
use std::time::Duration;

use chrono::{DateTime, Utc};
use ruststream_sqlx::{DatabaseClock, Inbox, InboxQueue, InboxRow};

#[derive(Debug, Inbox, sqlx::FromRow)]
#[inbox(table = "jobs")]
struct Locked {
    #[field(id)]
    id: i64,
    #[field(payload)]
    payload: Vec<u8>,
}

#[derive(Debug, Inbox, sqlx::FromRow)]
#[inbox(table = "jobs", clock = DatabaseClock)]
struct OnDatabaseTime {
    #[field(id)]
    id: i64,
    #[field(locked_until)]
    locked_until: Option<DateTime<Utc>>,
    #[field(payload)]
    payload: Vec<u8>,
}

fn main() {
    let _ = InboxQueue::<Locked>::new("jobs").lease(Duration::from_secs(30));
    let _ = <OnDatabaseTime as InboxRow>::SPEC;
}