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

difftreelog

fix(rmrk) use derivative for enum defaults

Daniel Shiposha2022-06-02parent: #4b3d058.patch.diff
in: master

3 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -6329,6 +6329,7 @@
 name = "pallet-rmrk-core"
 version = "0.1.0"
 dependencies = [
+ "derivative",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
modifiedpallets/proxy-rmrk-core/Cargo.tomldiffbeforeafterboth
--- a/pallets/proxy-rmrk-core/Cargo.toml
+++ b/pallets/proxy-rmrk-core/Cargo.toml
@@ -23,6 +23,7 @@
 pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.22" }
 frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" }
 scale-info = { version = "2.0.1", default-features = false, features = ["derive"] }
+derivative = { version = "2.2.0", features = ["use_core"] }
 
 [features]
 default = ["std"]
modifiedpallets/proxy-rmrk-core/src/misc.rsdiffbeforeafterboth
before · pallets/proxy-rmrk-core/src/misc.rs
1use super::*;2use codec::{Encode, Decode};34#[macro_export]5macro_rules! map_common_err_to_proxy {6    (match $err:ident { $($common_err:ident => $proxy_err:ident),+ }) => {7        $(8            if $err == <CommonError<T>>::$common_err.into() {9                return <Error<T>>::$proxy_err.into()10            } else11        )+ {12            $err13        }14    };15}1617pub trait RmrkDecode<T: Decode + Default, S> {18	fn decode_or_default(&self) -> T;19}2021// todo fail if unwrap doesn't work22impl<T: Decode + Default, S> RmrkDecode<T, S> for BoundedVec<u8, S> {23	fn decode_or_default(&self) -> T {24		let mut value = self.as_slice();2526		T::decode(&mut value).unwrap_or_default()27	}28}2930pub trait RmrkRebind<T, S> {31	fn rebind(&self) -> BoundedVec<u8, S>;32}3334// todo fail if unwrap doesn't work35impl<T, S> RmrkRebind<T, S> for BoundedVec<u8, T>36where37	BoundedVec<u8, S>: TryFrom<Vec<u8>>,38{39	fn rebind(&self) -> BoundedVec<u8, S> {40		BoundedVec::<u8, S>::try_from(self.clone().into_inner()).unwrap_or_default()41	}42}4344#[derive(Encode, Decode, PartialEq, Eq)]45pub enum CollectionType {46	Regular,47	Resource,48	Base,49}5051// todo remove default?52#[derive(Encode, Decode, PartialEq, Eq, Default)]53pub enum NftType {54	#[default]55	Regular,56	Resource,57	FixedPart,58	SlotPart,59	Theme,60}6162// todo remove default?63#[derive(Encode, Decode, PartialEq, Eq, Default)]64pub enum ResourceType {65	#[default]66	Basic,67	Composable,68	Slot,69}
after · pallets/proxy-rmrk-core/src/misc.rs
1use super::*;2use codec::{Encode, Decode};3use derivative::Derivative;45#[macro_export]6macro_rules! map_common_err_to_proxy {7    (match $err:ident { $($common_err:ident => $proxy_err:ident),+ }) => {8        $(9            if $err == <CommonError<T>>::$common_err.into() {10                return <Error<T>>::$proxy_err.into()11            } else12        )+ {13            $err14        }15    };16}1718pub trait RmrkDecode<T: Decode + Default, S> {19	fn decode_or_default(&self) -> T;20}2122// todo fail if unwrap doesn't work23impl<T: Decode + Default, S> RmrkDecode<T, S> for BoundedVec<u8, S> {24	fn decode_or_default(&self) -> T {25		let mut value = self.as_slice();2627		T::decode(&mut value).unwrap_or_default()28	}29}3031pub trait RmrkRebind<T, S> {32	fn rebind(&self) -> BoundedVec<u8, S>;33}3435// todo fail if unwrap doesn't work36impl<T, S> RmrkRebind<T, S> for BoundedVec<u8, T>37where38	BoundedVec<u8, S>: TryFrom<Vec<u8>>,39{40	fn rebind(&self) -> BoundedVec<u8, S> {41		BoundedVec::<u8, S>::try_from(self.clone().into_inner()).unwrap_or_default()42	}43}4445#[derive(Encode, Decode, PartialEq, Eq)]46pub enum CollectionType {47	Regular,48	Resource,49	Base,50}5152// todo remove default?53#[derive(Encode, Decode, PartialEq, Eq, Derivative)]54#[derivative(Default(bound=""))]55pub enum NftType {56	#[derivative(Default)]57	Regular,58	Resource,59	FixedPart,60	SlotPart,61	Theme,62}6364// todo remove default?65#[derive(Encode, Decode, PartialEq, Eq, Derivative)]66#[derivative(Default(bound=""))]67pub enum ResourceType {68	#[derivative(Default)]69	Basic,70	Composable,71	Slot,72}