Open zeenix opened 2 years ago
Thanks for reporting this.
I imagine almost all of these can be solved by adding an argument to the
dbus_proxy
attribute like#[dbus_proxy(property, rename = "state_property"]
We already do have name
attribute for that actually, does that not work for properties?
While the XML code generator would still fail, the code would be fixable very easily.
Yeah but we could also make xmlgen smarter. :)
I imagine almost all of these can be solved by adding an argument to the
dbus_proxy
attribute like#[dbus_proxy(property, rename = "state_property"]
We already do have
name
attribute for that actually, does that not work for properties?
Note that it's called name
and not rename
because you're providing the name of the property/method on D-Bus, which is in PascalCase.
In GitLab by @hansihe on Dec 25, 2021, 14:37
Ah! I must have missed that attribute somehow. Thanks for pointing me in the right direction!
I guess this is now mainly an issue for making xmlgen smarter :)
I'll update the issue text in a bit.
Ah! I must have missed that attribute somehow. Thanks for pointing me in the right direction!
Np. :)
I guess this is now mainly an issue for making xmlgen smarter
Yeah, it's not super smart at the moment, unfortunately.
I'll update the issue text in a bit.
No hurry. Happy holidays. :)
In GitLab by @hansihe on Dec 24, 2021, 19:44
There are several different variants of this, all of which I found in interfaces by
NetworkManager
.Case 1: Method collision with property
See the
org.freedesktop.NetworkManager
interface for an example.This interface has both a signal and a method named
State
:This will generate the following error when compiled:
Case 2: Method/property/signal collision with [signal]_changed function
See the
org.freedesktop.NetworkManager
interface for an example.The code generation will generate a function named
receive_state_changed
for both of these:This will generate the following error when compiled:
Thoughts
I imagine almost all of these can be solved by adding an argument to the
dbus_proxy
attribute like#[dbus_proxy(property, rename = "state_property"]
.While the XML code generator would still fail, the code would be fixable very easily.
As is today, unless I have missed something, cases like these are unrepresentable with
zbus_macros
.