Typed names
This MR mainly replaces our use of strings with specific types for various names on the bus. This is to ensure that these string type are checked for conformance. We should do that anyway but the D-Bus specification also mandates implementations to verify everything to and from the bus.
The generic implementations and TryFrom
implementations ensure that impact to users is minimum with this change.
It would be great if zbus_macros would check the strings at compile time. For that we'd likely want to move all these new name types into a separate zbus_names
crate as we'd want to continue avoiding a circular dep between zbus
and zbus_macros
.