disco_quick/
shared.rs

1use crate::util::get_attr;
2use quick_xml::events::BytesStart;
3
4#[derive(Clone, Debug, Default)]
5#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6pub struct ReleaseLabel {
7    pub id: u32,
8    pub name: String,
9    pub catno: Option<String>,
10    pub entity_type: u8,
11    pub entity_type_name: String,
12}
13
14#[derive(Clone, Debug, Default)]
15#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
16pub struct Image {
17    pub r#type: String,
18    pub uri: String,
19    pub uri150: String,
20    pub width: i16,
21    pub height: i16,
22}
23
24impl Image {
25    pub fn from_event(ev: BytesStart) -> Self {
26        let mut attrs = ev.attributes();
27        Image {
28            r#type: get_attr(attrs.next()).to_string(),
29            uri: get_attr(attrs.next()).to_string(),
30            uri150: get_attr(attrs.next()).to_string(),
31            width: get_attr(attrs.next()).parse().unwrap(),
32            height: get_attr(attrs.next()).parse().unwrap(),
33        }
34    }
35}