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
error[E0277]: the `BuiltIn<sqlx::Sqlite>` dialect opens no transaction at `ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable`
  --> tests/ui/opening.rs:42:53
   |
42 |     let _ = InboxQueue::<Serializable>::new("jobs").subscribe(&connected).await;
   |                                                     ^^^^^^^^^ the table's `isolation` or `mode` names it
   |
   = help: the trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable>` is not implemented for `BuiltIn<sqlx::Sqlite>`
   = note: Postgres opens `read_committed`, `repeatable_read` and `serializable`; MySQL and MariaDB those and `read_uncommitted`; SQLite takes the modes `deferred`, `immediate` and `exclusive`
   = note: a dialect of the service's own opens a level by implementing `Opens<Level>` and `Dialect::begin`
help: `BuiltIn<sqlx::Sqlite>` implements trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<Level>`
  --> src/inbox/database/built_in.rs
   |
   | impl Opens<level::Deferred> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Deferred>`
...
   | impl Opens<level::Immediate> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate>`
...
   | impl Opens<level::Exclusive> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Exclusive>`
   = note: required for `InboxQueue<Serializable>` to implement `SubscriptionSource<ConnectedSqlxBroker<sqlx::Sqlite>>`

error[E0277]: the `BuiltIn<sqlx::Sqlite>` dialect opens no transaction at `ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable`
  --> tests/ui/opening.rs:42:13
   |
42 |     let _ = InboxQueue::<Serializable>::new("jobs").subscribe(&connected).await;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the table's `isolation` or `mode` names it
   |
   = help: the trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable>` is not implemented for `BuiltIn<sqlx::Sqlite>`
   = note: Postgres opens `read_committed`, `repeatable_read` and `serializable`; MySQL and MariaDB those and `read_uncommitted`; SQLite takes the modes `deferred`, `immediate` and `exclusive`
   = note: a dialect of the service's own opens a level by implementing `Opens<Level>` and `Dialect::begin`
help: `BuiltIn<sqlx::Sqlite>` implements trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<Level>`
  --> src/inbox/database/built_in.rs
   |
   | impl Opens<level::Deferred> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Deferred>`
...
   | impl Opens<level::Immediate> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate>`
...
   | impl Opens<level::Exclusive> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Exclusive>`
note: required by a bound in `<InboxQueue<Row, Mode> as SubscriptionSource<ConnectedSqlxBroker<DB, D>>>`
  --> src/inbox/queue.rs
   |
   |     D: Dialect + Opens<Row::Opening> + 'static,
   |                  ^^^^^^^^^^^^^^^^^^^ required by this bound in `<InboxQueue<Row, Mode> as SubscriptionSource<ConnectedSqlxBroker<DB, D>>>`

error[E0277]: the `BuiltIn<sqlx::Sqlite>` dialect opens no transaction at `ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable`
  --> tests/ui/opening.rs:42:75
   |
42 |     let _ = InboxQueue::<Serializable>::new("jobs").subscribe(&connected).await;
   |                                                                           ^^^^^ the table's `isolation` or `mode` names it
   |
   = help: the trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable>` is not implemented for `BuiltIn<sqlx::Sqlite>`
   = note: Postgres opens `read_committed`, `repeatable_read` and `serializable`; MySQL and MariaDB those and `read_uncommitted`; SQLite takes the modes `deferred`, `immediate` and `exclusive`
   = note: a dialect of the service's own opens a level by implementing `Opens<Level>` and `Dialect::begin`
help: `BuiltIn<sqlx::Sqlite>` implements trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<Level>`
  --> src/inbox/database/built_in.rs
   |
   | impl Opens<level::Deferred> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Deferred>`
...
   | impl Opens<level::Immediate> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate>`
...
   | impl Opens<level::Exclusive> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Exclusive>`
note: required by a bound in `<InboxQueue<Row, Mode> as SubscriptionSource<ConnectedSqlxBroker<DB, D>>>`
  --> src/inbox/queue.rs
   |
   |     D: Dialect + Opens<Row::Opening> + 'static,
   |                  ^^^^^^^^^^^^^^^^^^^ required by this bound in `<InboxQueue<Row, Mode> as SubscriptionSource<ConnectedSqlxBroker<DB, D>>>`

error[E0277]: the `BuiltIn<sqlx::Postgres>` dialect opens no transaction at `ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate`
  --> tests/ui/opening.rs:49:50
   |
49 |     let _ = InboxQueue::<Immediate>::new("jobs").subscribe(&connected).await;
   |                                                  ^^^^^^^^^ the table's `isolation` or `mode` names it
   |
   = help: the trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate>` is not implemented for `BuiltIn<sqlx::Postgres>`
   = note: Postgres opens `read_committed`, `repeatable_read` and `serializable`; MySQL and MariaDB those and `read_uncommitted`; SQLite takes the modes `deferred`, `immediate` and `exclusive`
   = note: a dialect of the service's own opens a level by implementing `Opens<Level>` and `Dialect::begin`
help: `BuiltIn<sqlx::Postgres>` implements trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<Level>`
  --> src/inbox/database/built_in.rs
   |
   | impl Opens<level::ReadCommitted> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::ReadCommitted>`
...
   | impl Opens<level::RepeatableRead> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::RepeatableRead>`
...
   | impl Opens<level::Serializable> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable>`
   = note: required for `InboxQueue<Immediate>` to implement `SubscriptionSource<ConnectedSqlxBroker<sqlx::Postgres>>`

error[E0277]: the `BuiltIn<sqlx::Postgres>` dialect opens no transaction at `ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate`
  --> tests/ui/opening.rs:49:13
   |
49 |     let _ = InboxQueue::<Immediate>::new("jobs").subscribe(&connected).await;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the table's `isolation` or `mode` names it
   |
   = help: the trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate>` is not implemented for `BuiltIn<sqlx::Postgres>`
   = note: Postgres opens `read_committed`, `repeatable_read` and `serializable`; MySQL and MariaDB those and `read_uncommitted`; SQLite takes the modes `deferred`, `immediate` and `exclusive`
   = note: a dialect of the service's own opens a level by implementing `Opens<Level>` and `Dialect::begin`
help: `BuiltIn<sqlx::Postgres>` implements trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<Level>`
  --> src/inbox/database/built_in.rs
   |
   | impl Opens<level::ReadCommitted> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::ReadCommitted>`
...
   | impl Opens<level::RepeatableRead> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::RepeatableRead>`
...
   | impl Opens<level::Serializable> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable>`
note: required by a bound in `<InboxQueue<Row, Mode> as SubscriptionSource<ConnectedSqlxBroker<DB, D>>>`
  --> src/inbox/queue.rs
   |
   |     D: Dialect + Opens<Row::Opening> + 'static,
   |                  ^^^^^^^^^^^^^^^^^^^ required by this bound in `<InboxQueue<Row, Mode> as SubscriptionSource<ConnectedSqlxBroker<DB, D>>>`

error[E0277]: the `BuiltIn<sqlx::Postgres>` dialect opens no transaction at `ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate`
  --> tests/ui/opening.rs:49:72
   |
49 |     let _ = InboxQueue::<Immediate>::new("jobs").subscribe(&connected).await;
   |                                                                        ^^^^^ the table's `isolation` or `mode` names it
   |
   = help: the trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate>` is not implemented for `BuiltIn<sqlx::Postgres>`
   = note: Postgres opens `read_committed`, `repeatable_read` and `serializable`; MySQL and MariaDB those and `read_uncommitted`; SQLite takes the modes `deferred`, `immediate` and `exclusive`
   = note: a dialect of the service's own opens a level by implementing `Opens<Level>` and `Dialect::begin`
help: `BuiltIn<sqlx::Postgres>` implements trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<Level>`
  --> src/inbox/database/built_in.rs
   |
   | impl Opens<level::ReadCommitted> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::ReadCommitted>`
...
   | impl Opens<level::RepeatableRead> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::RepeatableRead>`
...
   | impl Opens<level::Serializable> for BuiltIn<Postgres> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable>`
note: required by a bound in `<InboxQueue<Row, Mode> as SubscriptionSource<ConnectedSqlxBroker<DB, D>>>`
  --> src/inbox/queue.rs
   |
   |     D: Dialect + Opens<Row::Opening> + 'static,
   |                  ^^^^^^^^^^^^^^^^^^^ required by this bound in `<InboxQueue<Row, Mode> as SubscriptionSource<ConnectedSqlxBroker<DB, D>>>`

error[E0277]: the `BuiltIn<sqlx::Sqlite>` dialect opens no transaction at `ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable`
  --> tests/ui/opening.rs:54:27
   |
54 |     SqlxBroker::new(pool).route::<Serializable>("jobs")
   |                           ^^^^^ the table's `isolation` or `mode` names it
   |
   = help: the trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Serializable>` is not implemented for `BuiltIn<sqlx::Sqlite>`
   = note: Postgres opens `read_committed`, `repeatable_read` and `serializable`; MySQL and MariaDB those and `read_uncommitted`; SQLite takes the modes `deferred`, `immediate` and `exclusive`
   = note: a dialect of the service's own opens a level by implementing `Opens<Level>` and `Dialect::begin`
help: `BuiltIn<sqlx::Sqlite>` implements trait `ruststream_sqlx::ruststream_sqlx_dialect::Opens<Level>`
  --> src/inbox/database/built_in.rs
   |
   | impl Opens<level::Deferred> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Deferred>`
...
   | impl Opens<level::Immediate> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Immediate>`
...
   | impl Opens<level::Exclusive> for BuiltIn<Sqlite> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ruststream_sqlx::ruststream_sqlx_dialect::Opens<ruststream_sqlx::ruststream_sqlx_dialect::level::Exclusive>`
note: required by a bound in `SqlxBroker::<DB, D>::route`
  --> src/inbox/broker.rs
   |
   |     pub fn route<Row>(mut self, name: impl Into<Cow<'static, str>>) -> Self
   |            ----- required by a bound in this associated function
...
   |         D: Opens<Row::Opening>,
   |            ^^^^^^^^^^^^^^^^^^^ required by this bound in `SqlxBroker::<DB, D>::route`