Return a helpful error when track metadata isn't supported
Diff
src/device.rs | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
@@ -542,11 +542,14 @@
true,
)?;
let metadata = Element::parse(
element_to_string(resp.get_child("TrackMetaData")
.ok_or_else(|| SonosError::ParseError("failed to find TrackMetaData element"))?)
.as_bytes(),
)?;
let metadata = element_to_string(resp.get_child("TrackMetaData")
.ok_or_else(|| SonosError::ParseError("failed to find TrackMetaData element"))?);
if metadata == "NOT_IMPLEMENTED" {
return Err(SonosError::ParseError("track information is not supported from the current source").into());
}
let metadata = Element::parse(metadata.as_bytes())?;
let metadata = metadata
.get_child("item")