Release 3.7.0 New API ------- * Implement `Clone` for `Error` and `fdo::Error`. * Add `MatchRule::matches` to check if a `MatchRule` matches a `Message`. * Add `{MessageStream, blocking::MessageIterator}::for_match_rule` to create a stream that only yields messages that match a `MatchRule`. This allows for efficient filtering of messages and avoids unnecessary task wakeups. `{SignalStream, blocking::SignalIterator}`, `ObjectServer` and method calls make use of this API internally. * Introduce `Error::InputOutput(Arc<..>)` and deprecated `Error::Io` in favour of it. * Add a generic `Error::Failure` variant. * Add `ConnectionBuilder::unique_name`. This is meant for bus implementations to allow them to set a unique_name before all other initialisations happen. For one, this would allow `ObjectServer` to be able to filter messages to the bus itself. * Implement `From<&MessageStream>` for `Connection`. Improvements/fixes ------------------- * Ensure all streams get the errors from reading the socket, not just one of them. * Many other minor and internal improvements and fixes. Dependencies changed -------------------- * Drop `async-channel` dependency. * Bump requirements: * `quick-xml` 0.27.1. * `zvariant` 2.10. * `zbus_names` 2.5. * `async-io` 1.12.0. * `async-executor` 1.5.0. * `async-broadcast` 0.5.0. * `ordered-stream` 0.1.3.