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
--- a/pallets/common/src/lib.rs
+++ b/pallets/common/src/lib.rs
@@ -608,18 +608,18 @@
 		} = <CollectionById<T>>::get(collection)?;
 
 		let token_property_permissions = <CollectionPropertyPermissions<T>>::get(collection)
-			.iter()
+			.into_iter()
 			.map(|(key, permission)| PropertyKeyPermission {
-				key: key.clone(),
-				permission: permission.clone(),
+				key,
+				permission,
 			})
 			.collect();
 
 		let properties = <CollectionProperties<T>>::get(collection)
-			.iter()
+			.into_iter()
 			.map(|(key, value)| Property {
-				key: key.clone(),
-				value: value.clone(),
+				key,
+				value,
 			})
 			.collect();
 
@@ -947,10 +947,10 @@
 			})
 			.unwrap_or_else(|| {
 				properties
-					.iter()
+					.into_iter()
 					.map(|(key, value)| Property {
-						key: key.clone(),
-						value: value.clone(),
+						key,
+						value,
 					})
 					.collect()
 			});
@@ -979,10 +979,10 @@
 			})
 			.unwrap_or_else(|| {
 				permissions
-					.iter()
+					.into_iter()
 					.map(|(key, permission)| PropertyKeyPermission {
-						key: key.clone(),
-						permission: permission.clone(),
+						key,
+						permission,
 					})
 					.collect()
 			});
modifiedpallets/nonfungible/src/common.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -405,7 +405,7 @@
 		})
 		.unwrap_or_else(|| {
 			properties
-				.iter()
+				.into_iter()
 				.map(|(key, value)| Property {
 					key: key.clone(),
 					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
--- a/runtime/common/src/runtime_apis.rs
+++ b/runtime/common/src/runtime_apis.rs
@@ -257,7 +257,7 @@
                         }
                         None => {
                             properties
-                                .iter()
+                                .into_iter()
                                 .filter_map(|(key, value)| Some(RmrkPropertyInfo {
                                     key: key.decode_or_default(),
                                     value: value.decode_or_default(),
@@ -296,7 +296,7 @@
                         }
                         None => {
                             properties
-                                .iter()
+                                .into_iter()
                                 .filter_map(|(key, value)| Some(RmrkPropertyInfo {
                                     key: key.decode_or_default(),
                                     value: value.decode_or_default(),