git.delta.rocks / unique-network / refs/commits / dcd5f668cefb

difftreelog

source

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