git.delta.rocks / unique-network / refs/commits / 93f54527db20

difftreelog

source

pallets/proxy-rmrk-core/src/property.rs1.9 KiBsourcehistory
1use super::*;2use core::convert::AsRef;34pub enum RmrkProperty<'r> {5	Metadata,6	CollectionType,7	RoyaltyInfo,8	Equipped,9	ResourceCollection,10	ResourcePriorities,11	ResourceType,12	PendingResourceAccept,13	PendingResourceRemoval,14	Parts,15	Base,16	Src,17	Slot,18	License,19	Thumb,20	EquippedNft,21	BaseType,22	ExternalPartId,23	EquippableList,24	ZIndex,25	ThemeName,26	ThemeInherit,27	UserProperty(&'r [u8]),28}2930impl<'r> RmrkProperty<'r> {31	pub fn to_key<T: Config>(self) -> Result<PropertyKey, Error<T>> {32		fn get_bytes<T: AsRef<[u8]>>(container: &T) -> &[u8] {33			container.as_ref()34		}3536		macro_rules! key {37            ($($component:expr),+) => {38                PropertyKey::try_from([$(key!(@ &$component)),+].concat())39                    .map_err(|_| <Error<T>>::RmrkPropertyKeyIsTooLong)40            };4142            (@ $key:expr) => {43                get_bytes($key)44            };45        }4647		match self {48			Self::Metadata => key!("metadata"),49			Self::CollectionType => key!("collection-type"),50			Self::RoyaltyInfo => key!("royalty-info"),51			Self::Equipped => key!("equipped"),52			Self::ResourceCollection => key!("resource-collection"),53			Self::ResourcePriorities => key!("resource-priorities"),54			Self::ResourceType => key!("resource-type"),55			Self::PendingResourceAccept => key!("pending-accept"),56			Self::PendingResourceRemoval => key!("pending-removal"),57			Self::Parts => key!("parts"),58			Self::Base => key!("base"),59			Self::Src => key!("src"),60			Self::Slot => key!("slot"),61			Self::License => key!("license"),62			Self::Thumb => key!("thumb"),63			Self::EquippedNft => key!("equipped-nft"),64			Self::BaseType => key!("base-type"),65			Self::ExternalPartId => key!("ext-part-id"),66			Self::EquippableList => key!("equippable-list"),67			Self::ZIndex => key!("z-index"),68			Self::ThemeName => key!("theme-name"),69			Self::ThemeInherit => key!("theme-inherit"),70			Self::UserProperty(name) => key!("userprop-", name),71		}72	}73}