diff --git a/zbus_xmlgen/src/lib.rs b/zbus_xmlgen/src/lib.rs index ad3021ea3..90400e1e8 100644 --- a/zbus_xmlgen/src/lib.rs +++ b/zbus_xmlgen/src/lib.rs @@ -228,7 +228,11 @@ fn to_rust_type(ty: &CompleteType, input: bool, as_ref: bool) -> String { loop { let c = it.peek().unwrap(); match **c as char { - STRUCT_SIG_END_CHAR | DICT_ENTRY_SIG_END_CHAR => break, + STRUCT_SIG_END_CHAR | DICT_ENTRY_SIG_END_CHAR => { + // consume the closing character + it.next().unwrap(); + break; + } _ => vec.push(iter_to_rust_type(it, input, false)), } } diff --git a/zbus_xmlgen/tests/data/sample_object0.rs b/zbus_xmlgen/tests/data/sample_object0.rs index 67d50a15b..03b357f88 100644 --- a/zbus_xmlgen/tests/data/sample_object0.rs +++ b/zbus_xmlgen/tests/data/sample_object0.rs @@ -1,6 +1,9 @@ #[dbus_proxy(interface = "com.example.SampleInterface0", assume_defaults = true)] trait SampleInterface0 { + /// BarplexSig method + fn barplex_sig(&self, rule: &(&[i32], i32, std::collections::HashMap<&str, &str>, i32, &[i32], i32, &[&str], i32, bool)) -> zbus::Result>; + /// Bazify method fn bazify(&self, bar: &(i32, i32, u32)) -> zbus::Result; diff --git a/zbus_xmlgen/tests/data/sample_object0.xml b/zbus_xmlgen/tests/data/sample_object0.xml index ec53891b0..6f2e4dcf6 100644 --- a/zbus_xmlgen/tests/data/sample_object0.xml +++ b/zbus_xmlgen/tests/data/sample_object0.xml @@ -17,6 +17,10 @@ + + + +