zbus-2.0.0-beta.3
·
4625 commits
to main
since this release
- More reliable implementation of
azync::Connection::receive_specific, which is heavily relied on by other async API. There was certain situations in which caller will end up waiting forever for a message that was already received (IOW an async deadlock). - Ability to register multiple handlers for the same signal on the same proxy. This also implies dropping of
disconnect_signalwrappers from macro generated proxy code since now each registered handler has a unique ID, with which can disconnect the handler. This is an API break as all of the signal handler disconnection code will need to be changed. - Take signal sender into account. While in most cases this isn't necessary, it becomes very important when communicating with multiple services exposing the same interface, over the same connection.
std::convert::InfallibletoError. Strictly speaking, this is an API break since error type inference in certain cases won't work and user will have to explicitly specify error types.- Allow passing
ObjectPathitself to parameters expectingTryInto<ObjectPath>. This fixes a regression from the previous pre-release where we made it easier to use the API by simply passing a string (the typical case). - Expose
zbus::fdo::Propertiesinterface implementation. - Internal signal subscription mechanism that ensures proxies to the same destination don't end up unsubscribing each other.
- Wrap
serde_xml_rs::Errorinzbus::Error. This is an API break, but with moderate impact, since callers usually can't do much with the XML error. SignalReceiver::receive_fornow returns a Result<()>. This is strictly speaking an API break as existing code will get a warning from the compiler about unused Result from this call.- Re-export
serde. - Add
Debugimpl onazync::SignalStream. - Add dependency on:
- slotmap
- event-listener
- Other minor internals fixes/improvements.