A decentralized music tracking and discovery platform built on AT Protocol 🎵

fix(listenbrainz/types): add extra field to AdditionalInfo for flexible data handling

+5 -3
+5 -3
crates/scrobbler/src/listenbrainz/types.rs
··· 1 use serde::Deserialize; 2 3 #[derive(Deserialize, Debug, Clone)] 4 pub struct AdditionalInfo { ··· 8 pub duration_ms: Option<u64>, 9 pub media_player: Option<String>, 10 pub submission_client: Option<String>, 11 } 12 13 #[derive(Deserialize, Debug, Clone)] ··· 15 pub artist_name: String, 16 pub track_name: String, 17 pub release_name: Option<String>, 18 - pub recording_mbid: Option<String>, 19 - pub artist_mbid: Option<String>, 20 - pub release_mbid: Option<String>, 21 pub additional_info: Option<AdditionalInfo>, 22 } 23
··· 1 + use std::collections::HashMap; 2 + 3 use serde::Deserialize; 4 + use serde_json::Value; 5 6 #[derive(Deserialize, Debug, Clone)] 7 pub struct AdditionalInfo { ··· 11 pub duration_ms: Option<u64>, 12 pub media_player: Option<String>, 13 pub submission_client: Option<String>, 14 + #[serde(flatten)] 15 + pub extra: HashMap<String, Value>, 16 } 17 18 #[derive(Deserialize, Debug, Clone)] ··· 20 pub artist_name: String, 21 pub track_name: String, 22 pub release_name: Option<String>, 23 pub additional_info: Option<AdditionalInfo>, 24 } 25