diff --git a/instant-xml-macros/src/ser.rs b/instant-xml-macros/src/ser.rs index a4457dd..cb3a803 100644 --- a/instant-xml-macros/src/ser.rs +++ b/instant-xml-macros/src/ser.rs @@ -228,7 +228,6 @@ fn serialize_struct( ) -> Result<(), instant_xml::Error> { // Start tag let prefix = serializer.write_start(#tag, #default_namespace)?; - debug_assert_eq!(prefix, None); // Set up element context, this will also emit namespace declarations #context diff --git a/instant-xml/tests/ser-child-ns.rs b/instant-xml/tests/ser-child-ns.rs index 3162b2b..afcc97b 100644 --- a/instant-xml/tests/ser-child-ns.rs +++ b/instant-xml/tests/ser-child-ns.rs @@ -47,3 +47,34 @@ fn struct_child_namespaces() { "falsetruefalse" ); } + +#[derive(Debug, ToXml)] +#[xml(rename = "DIDL-Lite", ns("DIDL", upnp = "UPNP"))] +pub struct DidlLite { + pub item: UpnpItem, +} + +#[derive(Debug, ToXml)] +#[xml(rename = "item", ns("DIDL"))] +pub struct UpnpItem { + pub album_art: Option, +} + +#[derive(Debug, ToXml)] +#[xml(rename = "albumArtURI", ns("UPNP", upnp = "UPNP"))] +pub struct AlbumArtUri { + #[xml(direct)] + pub uri: String, +} + +#[test] +fn test_didl() { + let didl = DidlLite { + item: UpnpItem { + album_art: Some(AlbumArtUri { + uri: "http://art".to_string(), + }), + }, + }; + assert_eq!(to_string(&didl).unwrap(), "http://art"); +}