git.delta.rocks / unique-network / refs/commits / 2169a96b9666

difftreelog

refactor optimize properties iteration

Daniel Shiposha2022-05-25parent: #27800fe.patch.diff
in: master

4 files changed

modifiedpallets/common/src/lib.rsdiffbeforeafterboth
608 } = <CollectionById<T>>::get(collection)?;608 } = <CollectionById<T>>::get(collection)?;
609609
610 let token_property_permissions = <CollectionPropertyPermissions<T>>::get(collection)610 let token_property_permissions = <CollectionPropertyPermissions<T>>::get(collection)
611 .iter()611 .into_iter()
612 .map(|(key, permission)| PropertyKeyPermission {612 .map(|(key, permission)| PropertyKeyPermission {
613 key: key.clone(),613 key,
614 permission: permission.clone(),614 permission,
615 })615 })
616 .collect();616 .collect();
617617
618 let properties = <CollectionProperties<T>>::get(collection)618 let properties = <CollectionProperties<T>>::get(collection)
619 .iter()619 .into_iter()
620 .map(|(key, value)| Property {620 .map(|(key, value)| Property {
621 key: key.clone(),621 key,
622 value: value.clone(),622 value,
623 })623 })
624 .collect();624 .collect();
625625
947 })947 })
948 .unwrap_or_else(|| {948 .unwrap_or_else(|| {
949 properties949 properties
950 .iter()950 .into_iter()
951 .map(|(key, value)| Property {951 .map(|(key, value)| Property {
952 key: key.clone(),952 key,
953 value: value.clone(),953 value,
954 })954 })
955 .collect()955 .collect()
956 });956 });
979 })979 })
980 .unwrap_or_else(|| {980 .unwrap_or_else(|| {
981 permissions981 permissions
982 .iter()982 .into_iter()
983 .map(|(key, permission)| PropertyKeyPermission {983 .map(|(key, permission)| PropertyKeyPermission {
984 key: key.clone(),984 key,
985 permission: permission.clone(),985 permission,
986 })986 })
987 .collect()987 .collect()
988 });988 });
modifiedpallets/nonfungible/src/common.rsdiffbeforeafterboth
405 })405 })
406 .unwrap_or_else(|| {406 .unwrap_or_else(|| {
407 properties407 properties
408 .iter()408 .into_iter()
409 .map(|(key, value)| Property {409 .map(|(key, value)| Property {
410 key: key.clone(),410 key: key.clone(),
411 value: value.clone(),411 value: value.clone(),
modifiedprimitives/data-structs/src/lib.rsdiffbeforeafterboth
771 self.0.get(key)771 self.0.get(key)
772 }772 }
773
774 pub fn iter(&self) -> impl Iterator<Item = (&PropertyKey, &Value)> {
775 self.0.iter()
776 }
777
778 pub fn into_iter(self) -> impl Iterator<Item = (PropertyKey, Value)> {
779 self.0.into_iter()
780 }
781773
782 fn check_property_key(key: &PropertyKey) -> Result<(), PropertiesError> {774 fn check_property_key(key: &PropertyKey) -> Result<(), PropertiesError> {
783 if key.is_empty() {775 if key.is_empty() {
796 }788 }
797}789}
790
791impl<Value> IntoIterator for PropertiesMap<Value> {
792 type Item = (PropertyKey, Value);
793 type IntoIter = <
794 BoundedBTreeMap<
795 PropertyKey,
796 Value,
797 ConstU32<MAX_PROPERTIES_PER_ITEM>
798 > as IntoIterator
799 >::IntoIter;
800
801 fn into_iter(self) -> Self::IntoIter {
802 self.0.into_iter()
803 }
804}
798805
799impl<Value> TrySetProperty for PropertiesMap<Value> {806impl<Value> TrySetProperty for PropertiesMap<Value> {
800 type Value = Value;807 type Value = Value;
825 space_limit: u32,832 space_limit: u32,
826}833}
827834
828impl Properties {835impl Properties {
829 pub fn new(space_limit: u32) -> Self {836 pub fn new(space_limit: u32) -> Self {
830 Self {837 Self {
831 map: PropertiesMap::new(),838 map: PropertiesMap::new(),
848 pub fn get(&self, key: &PropertyKey) -> Option<&PropertyValue> {855 pub fn get(&self, key: &PropertyKey) -> Option<&PropertyValue> {
849 self.map.get(key)856 self.map.get(key)
850 }857 }
851858}
852 pub fn iter(&self) -> impl Iterator<Item = (&PropertyKey, &PropertyValue)> {
853 self.map.iter()
854 }
855859
856 pub fn into_iter(self) -> impl Iterator<Item = (PropertyKey, PropertyValue)> {860impl IntoIterator for Properties {
861 type Item = (PropertyKey, PropertyValue);
862 type IntoIter = <PropertiesMap<PropertyValue> as IntoIterator>::IntoIter;
863
864 fn into_iter(self) -> Self::IntoIter {
857 self.map.into_iter()865 self.map.into_iter()
858 }866 }
859}867}
860868
861impl TrySetProperty for Properties {869impl TrySetProperty for Properties {
862 type Value = PropertyValue;870 type Value = PropertyValue;
modifiedruntime/common/src/runtime_apis.rsdiffbeforeafterboth
257 }257 }
258 None => {258 None => {
259 properties259 properties
260 .iter()260 .into_iter()
261 .filter_map(|(key, value)| Some(RmrkPropertyInfo {261 .filter_map(|(key, value)| Some(RmrkPropertyInfo {
262 key: key.decode_or_default(),262 key: key.decode_or_default(),
263 value: value.decode_or_default(),263 value: value.decode_or_default(),
296 }296 }
297 None => {297 None => {
298 properties298 properties
299 .iter()299 .into_iter()
300 .filter_map(|(key, value)| Some(RmrkPropertyInfo {300 .filter_map(|(key, value)| Some(RmrkPropertyInfo {
301 key: key.decode_or_default(),301 key: key.decode_or_default(),
302 value: value.decode_or_default(),302 value: value.decode_or_default(),