diff --git a/metadata/src/album.rs b/metadata/src/album.rs index a7b7a1cf..85bee013 100644 --- a/metadata/src/album.rs +++ b/metadata/src/album.rs @@ -14,7 +14,7 @@ use crate::{ restriction::Restrictions, sale_period::SalePeriods, track::Tracks, - util::{impl_deref_wrapped, try_from_repeated_message}, + util::{impl_deref_wrapped, impl_try_from_repeated}, Metadata, }; @@ -119,7 +119,7 @@ impl TryFrom<&::Message> for Album { } } -try_from_repeated_message!(::Message, Albums); +impl_try_from_repeated!(::Message, Albums); impl TryFrom<&DiscMessage> for Disc { type Error = librespot_core::Error; @@ -132,4 +132,4 @@ impl TryFrom<&DiscMessage> for Disc { } } -try_from_repeated_message!(DiscMessage, Discs); +impl_try_from_repeated!(DiscMessage, Discs); diff --git a/metadata/src/artist.rs b/metadata/src/artist.rs index cd668c2a..7ddf07a1 100644 --- a/metadata/src/artist.rs +++ b/metadata/src/artist.rs @@ -13,7 +13,7 @@ use crate::{ restriction::Restrictions, sale_period::SalePeriods, track::Tracks, - util::{from_repeated_message, impl_deref_wrapped, try_from_repeated_message}, + util::{impl_deref_wrapped, impl_from_repeated, impl_try_from_repeated}, Metadata, }; @@ -207,7 +207,7 @@ impl TryFrom<&::Message> for Artist { } } -try_from_repeated_message!(::Message, Artists); +impl_try_from_repeated!(::Message, Artists); impl TryFrom<&ArtistWithRoleMessage> for ArtistWithRole { type Error = librespot_core::Error; @@ -220,7 +220,7 @@ impl TryFrom<&ArtistWithRoleMessage> for ArtistWithRole { } } -try_from_repeated_message!(ArtistWithRoleMessage, ArtistsWithRole); +impl_try_from_repeated!(ArtistWithRoleMessage, ArtistsWithRole); impl TryFrom<&TopTracksMessage> for TopTracks { type Error = librespot_core::Error; @@ -232,7 +232,7 @@ impl TryFrom<&TopTracksMessage> for TopTracks { } } -try_from_repeated_message!(TopTracksMessage, CountryTopTracks); +impl_try_from_repeated!(TopTracksMessage, CountryTopTracks); impl TryFrom<&AlbumGroupMessage> for AlbumGroup { type Error = librespot_core::Error; @@ -255,7 +255,7 @@ impl AlbumGroups { } } -try_from_repeated_message!(AlbumGroupMessage, AlbumGroups); +impl_try_from_repeated!(AlbumGroupMessage, AlbumGroups); impl From<&BiographyMessage> for Biography { fn from(biography: &BiographyMessage) -> Self { @@ -273,7 +273,7 @@ impl From<&BiographyMessage> for Biography { } } -from_repeated_message!(BiographyMessage, Biographies); +impl_from_repeated!(BiographyMessage, Biographies); impl From<&ActivityPeriodMessage> for ActivityPeriod { fn from(activity_periode: &ActivityPeriodMessage) -> Self { @@ -285,4 +285,4 @@ impl From<&ActivityPeriodMessage> for ActivityPeriod { } } -from_repeated_message!(ActivityPeriodMessage, ActivityPeriods); +impl_from_repeated!(ActivityPeriodMessage, ActivityPeriods); diff --git a/metadata/src/availability.rs b/metadata/src/availability.rs index 62fada0d..20727f8c 100644 --- a/metadata/src/availability.rs +++ b/metadata/src/availability.rs @@ -6,7 +6,7 @@ use std::{ use thiserror::Error; -use crate::util::{impl_deref_wrapped, try_from_repeated_message}; +use crate::util::{impl_deref_wrapped, impl_try_from_repeated}; use librespot_core::date::Date; @@ -48,4 +48,4 @@ impl TryFrom<&AvailabilityMessage> for Availability { } } -try_from_repeated_message!(AvailabilityMessage, Availabilities); +impl_try_from_repeated!(AvailabilityMessage, Availabilities); diff --git a/metadata/src/content_rating.rs b/metadata/src/content_rating.rs index eeb7b717..42d0ad5e 100644 --- a/metadata/src/content_rating.rs +++ b/metadata/src/content_rating.rs @@ -3,7 +3,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use crate::util::{from_repeated_message, impl_deref_wrapped}; +use crate::util::{impl_deref_wrapped, impl_from_repeated}; use librespot_protocol as protocol; use protocol::metadata::ContentRating as ContentRatingMessage; @@ -28,4 +28,4 @@ impl From<&ContentRatingMessage> for ContentRating { } } -from_repeated_message!(ContentRatingMessage, ContentRatings); +impl_from_repeated!(ContentRatingMessage, ContentRatings); diff --git a/metadata/src/copyright.rs b/metadata/src/copyright.rs index 689aa87c..360fd994 100644 --- a/metadata/src/copyright.rs +++ b/metadata/src/copyright.rs @@ -3,7 +3,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use crate::util::{from_repeated_message, impl_deref_wrapped}; +use crate::util::{impl_deref_wrapped, impl_from_repeated}; use librespot_protocol as protocol; use protocol::metadata::Copyright as CopyrightMessage; @@ -29,4 +29,4 @@ impl From<&CopyrightMessage> for Copyright { } } -from_repeated_message!(CopyrightMessage, Copyrights); +impl_from_repeated!(CopyrightMessage, Copyrights); diff --git a/metadata/src/episode.rs b/metadata/src/episode.rs index e7305b9f..e3a5c7a3 100644 --- a/metadata/src/episode.rs +++ b/metadata/src/episode.rs @@ -14,7 +14,7 @@ use crate::{ image::Images, request::RequestResult, restriction::Restrictions, - util::{impl_deref_wrapped, try_from_repeated_message}, + util::{impl_deref_wrapped, impl_try_from_repeated}, video::VideoFiles, Metadata, }; @@ -125,4 +125,4 @@ impl TryFrom<&::Message> for Episode { } } -try_from_repeated_message!(::Message, Episodes); +impl_try_from_repeated!(::Message, Episodes); diff --git a/metadata/src/external_id.rs b/metadata/src/external_id.rs index f5dff80e..ce8d4fd8 100644 --- a/metadata/src/external_id.rs +++ b/metadata/src/external_id.rs @@ -3,7 +3,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use crate::util::{from_repeated_message, impl_deref_wrapped}; +use crate::util::{impl_deref_wrapped, impl_from_repeated}; use librespot_protocol as protocol; use protocol::metadata::ExternalId as ExternalIdMessage; @@ -28,4 +28,4 @@ impl From<&ExternalIdMessage> for ExternalId { } } -from_repeated_message!(ExternalIdMessage, ExternalIds); +impl_from_repeated!(ExternalIdMessage, ExternalIds); diff --git a/metadata/src/image.rs b/metadata/src/image.rs index 488fe8b8..dd716623 100644 --- a/metadata/src/image.rs +++ b/metadata/src/image.rs @@ -4,7 +4,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use crate::util::{from_repeated_message, impl_deref_wrapped, try_from_repeated_message}; +use crate::util::{impl_deref_wrapped, impl_from_repeated, impl_try_from_repeated}; use librespot_core::{FileId, SpotifyId}; @@ -60,7 +60,7 @@ impl From<&ImageMessage> for Image { } } -from_repeated_message!(ImageMessage, Images); +impl_from_repeated!(ImageMessage, Images); impl From<&PictureSizeMessage> for PictureSize { fn from(size: &PictureSizeMessage) -> Self { @@ -71,7 +71,7 @@ impl From<&PictureSizeMessage> for PictureSize { } } -from_repeated_message!(PictureSizeMessage, PictureSizes); +impl_from_repeated!(PictureSizeMessage, PictureSizes); impl TryFrom<&TranscodedPictureMessage> for TranscodedPicture { type Error = librespot_core::Error; @@ -83,4 +83,4 @@ impl TryFrom<&TranscodedPictureMessage> for TranscodedPicture { } } -try_from_repeated_message!(TranscodedPictureMessage, TranscodedPictures); +impl_try_from_repeated!(TranscodedPictureMessage, TranscodedPictures); diff --git a/metadata/src/playlist/attribute.rs b/metadata/src/playlist/attribute.rs index 43154e90..b5849a66 100644 --- a/metadata/src/playlist/attribute.rs +++ b/metadata/src/playlist/attribute.rs @@ -7,7 +7,7 @@ use std::{ use crate::{ image::PictureSizes, - util::{from_repeated_enum, impl_deref_wrapped}, + util::{impl_deref_wrapped, impl_from_repeated_copy}, }; use librespot_core::date::Date; @@ -42,7 +42,7 @@ pub struct PlaylistAttributeKinds(pub Vec); impl_deref_wrapped!(PlaylistAttributeKinds, Vec); -from_repeated_enum!(PlaylistAttributeKind, PlaylistAttributeKinds); +impl_from_repeated_copy!(PlaylistAttributeKind, PlaylistAttributeKinds); #[derive(Debug, Clone, Default)] pub struct PlaylistFormatAttribute(pub HashMap); @@ -64,7 +64,7 @@ pub struct PlaylistItemAttributeKinds(pub Vec); impl_deref_wrapped!(PlaylistItemAttributeKinds, Vec); -from_repeated_enum!(PlaylistItemAttributeKind, PlaylistItemAttributeKinds); +impl_from_repeated_copy!(PlaylistItemAttributeKind, PlaylistItemAttributeKinds); #[derive(Debug, Clone)] pub struct PlaylistPartialAttributes { diff --git a/metadata/src/playlist/item.rs b/metadata/src/playlist/item.rs index 819783e0..f684f771 100644 --- a/metadata/src/playlist/item.rs +++ b/metadata/src/playlist/item.rs @@ -4,7 +4,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use crate::util::{impl_deref_wrapped, try_from_repeated_message}; +use crate::util::{impl_deref_wrapped, impl_try_from_repeated}; use super::{ attribute::{PlaylistAttributes, PlaylistItemAttributes}, @@ -63,7 +63,7 @@ impl TryFrom<&PlaylistItemMessage> for PlaylistItem { } } -try_from_repeated_message!(PlaylistItemMessage, PlaylistItems); +impl_try_from_repeated!(PlaylistItemMessage, PlaylistItems); impl TryFrom<&PlaylistItemsMessage> for PlaylistItemList { type Error = librespot_core::Error; @@ -92,4 +92,4 @@ impl TryFrom<&PlaylistMetaItemMessage> for PlaylistMetaItem { } } -try_from_repeated_message!(PlaylistMetaItemMessage, PlaylistMetaItems); +impl_try_from_repeated!(PlaylistMetaItemMessage, PlaylistMetaItems); diff --git a/metadata/src/playlist/list.rs b/metadata/src/playlist/list.rs index 909e5d7a..223f8d30 100644 --- a/metadata/src/playlist/list.rs +++ b/metadata/src/playlist/list.rs @@ -8,7 +8,7 @@ use protobuf::Message; use crate::{ request::{MercuryRequest, RequestResult}, - util::{from_repeated_enum, impl_deref_wrapped, try_from_repeated_message}, + util::{impl_deref_wrapped, impl_from_repeated_copy, impl_try_from_repeated}, Metadata, }; @@ -210,5 +210,5 @@ impl TryFrom<&::Message> for SelectedListContent { } } -from_repeated_enum!(Geoblock, Geoblocks); -try_from_repeated_message!(Vec, Playlists); +impl_from_repeated_copy!(Geoblock, Geoblocks); +impl_try_from_repeated!(Vec, Playlists); diff --git a/metadata/src/playlist/operation.rs b/metadata/src/playlist/operation.rs index 44f5ed74..06264aca 100644 --- a/metadata/src/playlist/operation.rs +++ b/metadata/src/playlist/operation.rs @@ -9,7 +9,7 @@ use crate::{ attribute::{PlaylistUpdateAttributes, PlaylistUpdateItemAttributes}, item::PlaylistItems, }, - util::{impl_deref_wrapped, try_from_repeated_message}, + util::{impl_deref_wrapped, impl_try_from_repeated}, }; use librespot_protocol as protocol; @@ -71,7 +71,7 @@ impl TryFrom<&PlaylistOperationMessage> for PlaylistOperation { } } -try_from_repeated_message!(PlaylistOperationMessage, PlaylistOperations); +impl_try_from_repeated!(PlaylistOperationMessage, PlaylistOperations); impl TryFrom<&PlaylistAddMessage> for PlaylistOperationAdd { type Error = librespot_core::Error; diff --git a/metadata/src/playlist/permission.rs b/metadata/src/playlist/permission.rs index 41479d94..47ddbdee 100644 --- a/metadata/src/playlist/permission.rs +++ b/metadata/src/playlist/permission.rs @@ -3,7 +3,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use crate::util::{from_repeated_enum, impl_deref_wrapped}; +use crate::util::{impl_deref_wrapped, impl_from_repeated_copy}; use librespot_protocol as protocol; use protocol::playlist_permission::Capabilities as CapabilitiesMessage; @@ -37,4 +37,4 @@ impl From<&CapabilitiesMessage> for Capabilities { } } -from_repeated_enum!(PermissionLevel, PermissionLevels); +impl_from_repeated_copy!(PermissionLevel, PermissionLevels); diff --git a/metadata/src/restriction.rs b/metadata/src/restriction.rs index 614daf64..51035a6c 100644 --- a/metadata/src/restriction.rs +++ b/metadata/src/restriction.rs @@ -4,7 +4,7 @@ use std::{ }; use crate::util::impl_deref_wrapped; -use crate::util::{from_repeated_enum, from_repeated_message}; +use crate::util::{impl_from_repeated, impl_from_repeated_copy}; use protocol::metadata::Restriction as RestrictionMessage; @@ -68,8 +68,8 @@ impl From<&RestrictionMessage> for Restriction { } } -from_repeated_message!(RestrictionMessage, Restrictions); -from_repeated_enum!(RestrictionCatalogue, RestrictionCatalogues); +impl_from_repeated!(RestrictionMessage, Restrictions); +impl_from_repeated_copy!(RestrictionCatalogue, RestrictionCatalogues); struct StrChunks<'s>(&'s str, usize); diff --git a/metadata/src/sale_period.rs b/metadata/src/sale_period.rs index 4981bb97..911e1d04 100644 --- a/metadata/src/sale_period.rs +++ b/metadata/src/sale_period.rs @@ -6,7 +6,7 @@ use std::{ use crate::{ restriction::Restrictions, - util::{impl_deref_wrapped, try_from_repeated_message}, + util::{impl_deref_wrapped, impl_try_from_repeated}, }; use librespot_core::date::Date; @@ -37,4 +37,4 @@ impl TryFrom<&SalePeriodMessage> for SalePeriod { } } -try_from_repeated_message!(SalePeriodMessage, SalePeriods); +impl_try_from_repeated!(SalePeriodMessage, SalePeriods); diff --git a/metadata/src/track.rs b/metadata/src/track.rs index ab365924..7d416f14 100644 --- a/metadata/src/track.rs +++ b/metadata/src/track.rs @@ -17,7 +17,7 @@ use crate::{ external_id::ExternalIds, restriction::Restrictions, sale_period::SalePeriods, - util::{impl_deref_wrapped, try_from_repeated_message}, + util::{impl_deref_wrapped, impl_try_from_repeated}, Album, Metadata, RequestResult, }; @@ -141,4 +141,4 @@ impl TryFrom<&::Message> for Track { } } -try_from_repeated_message!(::Message, Tracks); +impl_try_from_repeated!(::Message, Tracks); diff --git a/metadata/src/util.rs b/metadata/src/util.rs index 2f3d8340..f6866340 100644 --- a/metadata/src/util.rs +++ b/metadata/src/util.rs @@ -1,4 +1,4 @@ -macro_rules! from_repeated_message { +macro_rules! impl_from_repeated { ($src:ty, $dst:ty) => { impl From<&[$src]> for $dst { fn from(src: &[$src]) -> Self { @@ -9,22 +9,22 @@ macro_rules! from_repeated_message { }; } -pub(crate) use from_repeated_message; +pub(crate) use impl_from_repeated; -macro_rules! from_repeated_enum { +macro_rules! impl_from_repeated_copy { ($src:ty, $dst:ty) => { impl From<&[$src]> for $dst { fn from(src: &[$src]) -> Self { - let result = src.iter().map(|x| <$src>::from(*x)).collect(); + let result = src.iter().copied().collect(); Self(result) } } }; } -pub(crate) use from_repeated_enum; +pub(crate) use impl_from_repeated_copy; -macro_rules! try_from_repeated_message { +macro_rules! impl_try_from_repeated { ($src:ty, $dst:ty) => { impl TryFrom<&[$src]> for $dst { type Error = librespot_core::Error; @@ -36,7 +36,7 @@ macro_rules! try_from_repeated_message { }; } -pub(crate) use try_from_repeated_message; +pub(crate) use impl_try_from_repeated; macro_rules! impl_deref_wrapped { ($wrapper:ty, $inner:ty) => { diff --git a/metadata/src/video.rs b/metadata/src/video.rs index 18d7073f..df634f23 100644 --- a/metadata/src/video.rs +++ b/metadata/src/video.rs @@ -3,7 +3,7 @@ use std::{ ops::{Deref, DerefMut}, }; -use crate::util::{from_repeated_message, impl_deref_wrapped}; +use crate::util::{impl_deref_wrapped, impl_from_repeated}; use librespot_core::FileId; @@ -15,4 +15,4 @@ pub struct VideoFiles(pub Vec); impl_deref_wrapped!(VideoFiles, Vec); -from_repeated_message!(VideoFileMessage, VideoFiles); +impl_from_repeated!(VideoFileMessage, VideoFiles);