ruststream 0.7.5

Async messaging framework for Rust: broker-agnostic traits, router, codecs, and a conformance harness for broker authors.
Documentation
error[E0277]: `OneAtATime` does not deliver messages in batches
  --> tests/ui/subscriber_batch_without_batching.rs:53:15
   |
53 |             b.include(handle.batch(nonzero!(64)));
   |               ^^^^^^^ this subscription has no batching of its own
   |
help: the trait `BatchSubscriber` is not implemented for `OneAtATime`
  --> tests/ui/subscriber_batch_without_batching.rs:13:1
   |
13 | struct OneAtATime(MemorySubscriber);
   | ^^^^^^^^^^^^^^^^^
   = note: a handler taking `&[T]` is handed whole batches: mount it on a subscription kind that batches. A broker whose transport has no native batches gives its subscriber this capability through the `Buffered` adapter (see `BatchSubscriber` and `Buffered`)
help: the following other types implement trait `BatchSubscriber`
  --> src/memory/capability.rs
   |
   | impl<Log: LogMode> BatchSubscriber for MemorySubscriber<Log> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `MemorySubscriber<Log>`
   |
  ::: src/buffered.rs
   |
   | impl<S: Subscriber> BatchSubscriber for BufferedSubscriber<S> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `BufferedSubscriber<S>`
   = note: required for `ruststream::runtime::forms::Batch` to implement `ruststream::runtime::RouterMount<Router<MemoryBroker>, SubscriberBuilder<Sealed<HandleValue<ruststream::runtime::Batch<Order>, (), (), (), handle, ruststream::runtime::Probed>>, Trickle, (Open, Open, Open, Fixed)>>`
   = note: required for `ruststream::runtime::forms::Batch` to implement `ruststream::runtime::IncludeMount<'_, MemoryBroker, Identity, (), (), PublishIdentity, SubscriberBuilder<Sealed<HandleValue<ruststream::runtime::Batch<Order>, (), (), (), handle, ruststream::runtime::Probed>>, Trickle, (Open, Open, Open, Fixed)>>`

error[E0277]: `Trickle` declares `Copies = AddressedCopies` but says no address
  --> tests/ui/subscriber_batch_without_batching.rs:53:15
   |
53 |             b.include(handle.batch(nonzero!(64)));
   |               ^^^^^^^ no redelivery address for this descriptor on `ConnectedMemoryBroker`
   |
help: the trait `RedeliveryAddressed<ConnectedMemoryBroker>` is not implemented for `Trickle`
  --> tests/ui/subscriber_batch_without_batching.rs:25:1
   |
25 | struct Trickle {
   | ^^^^^^^^^^^^^^
   = note: a descriptor whose retry copies this process publishes to one destination implements `RedeliveryAddressed` beside `SubscriptionSource`; one that reads many destinations declares `Copies = NamedCopies` and lets the mount site name one
   = help: the following other types implement trait `RedeliveryAddressed<C>`:
             `MemoryPattern` implements `RedeliveryAddressed<ConnectedMemoryBroker<Log>>`
             `MemorySource` implements `RedeliveryAddressed<ConnectedMemoryBroker<Log>>`
             `Name` implements `RedeliveryAddressed<C>`
             `StartAt<S, P>` implements `RedeliveryAddressed<C>`
             `ruststream::Buffered<S>` implements `RedeliveryAddressed<C>`
   = note: required for `AddressedCopies` to implement `ruststream::runtime::CopyPathAddress<ConnectedMemoryBroker, Trickle>`
   = note: required for `runtime::router::routes::BatchRoute<Trickle, runtime::batch::TypedBatch<MemoryMessage, runtime::input::Decoded<Order>, JsonCodec, runtime::handle::eager::BatchBody<ruststream::runtime::Batch<Order>, handle>>>` to implement `runtime::router::routes::MountRoute<MemoryBroker, (), PublishIdentity>`
   = note: required for `(runtime::router::routes::BatchRoute<Trickle, runtime::batch::TypedBatch<MemoryMessage, runtime::input::Decoded<Order>, JsonCodec, runtime::handle::eager::BatchBody<ruststream::runtime::Batch<Order>, handle>>>, ())` to implement `RouterDef<MemoryBroker>`
   = note: required for `Router<MemoryBroker, (runtime::router::routes::BatchRoute<Trickle, runtime::batch::TypedBatch<MemoryMessage, runtime::input::Decoded<Order>, JsonCodec, runtime::handle::eager::BatchBody<ruststream::runtime::Batch<Order>, handle>>>, ())>` to implement `ruststream::runtime::ScopeCommit<MemoryBroker, Identity, (), (), PublishIdentity>`
   = note: required for `ruststream::runtime::forms::Batch` to implement `ruststream::runtime::IncludeMount<'_, MemoryBroker, Identity, (), (), PublishIdentity, SubscriberBuilder<Sealed<HandleValue<ruststream::runtime::Batch<Order>, (), (), (), handle, ruststream::runtime::Probed>>, Trickle, (Open, Open, Open, Fixed)>>`