diff --git a/zbus_xmlgen/src/lib.rs b/zbus_xmlgen/src/lib.rs index 87401217b..ad3021ea3 100644 --- a/zbus_xmlgen/src/lib.rs +++ b/zbus_xmlgen/src/lib.rs @@ -65,21 +65,22 @@ impl<'i> Display for GenTrait<'i> { props.sort_by(|a, b| a.name().partial_cmp(&b.name()).unwrap()); for p in props { let name = to_identifier(&to_snakecase(p.name().as_str())); + let fn_attribute = if pascal_case(&name) != p.name().as_str() { + format!(" #[dbus_proxy(property, name = \"{}\")]", p.name()) + } else { + " #[dbus_proxy(property)]".to_string() + }; writeln!(f)?; writeln!(f, " /// {} property", p.name())?; - if pascal_case(&name) != p.name().as_str() { - writeln!(f, " #[dbus_proxy(property, name = \"{}\")]", p.name())?; - } else { - writeln!(f, " #[dbus_proxy(property)]")?; - } - if p.access().read() { + writeln!(f, "{}", fn_attribute)?; let output = to_rust_type(p.ty(), false, false); writeln!(f, " fn {name}(&self) -> zbus::Result<{output}>;",)?; } if p.access().write() { + writeln!(f, "{}", fn_attribute)?; let input = to_rust_type(p.ty(), true, true); writeln!( f, diff --git a/zbus_xmlgen/tests/data/sample_object0.rs b/zbus_xmlgen/tests/data/sample_object0.rs index ecf2bd606..67d50a15b 100644 --- a/zbus_xmlgen/tests/data/sample_object0.rs +++ b/zbus_xmlgen/tests/data/sample_object0.rs @@ -21,5 +21,6 @@ trait SampleInterface0 { /// Bar property #[dbus_proxy(property)] fn bar(&self) -> zbus::Result; + #[dbus_proxy(property)] fn set_bar(&self, value: u8) -> zbus::Result<()>; }