11use codec:: { Decode , Encode , MaxEncodedLen } ;
2- use frame_support:: { traits:: Get , BoundedVec , DefaultNoBound } ;
2+ use frame_support:: { traits:: Get , BoundedVec , CloneNoBound , DefaultNoBound , PartialEqNoBound } ;
33use scale_info:: TypeInfo ;
44#[ cfg( feature = "std" ) ]
55use sp_std:: { fmt, prelude:: * } ;
66
77/// An ordered set backed by `BoundedVec`
8- #[ derive( PartialEq , Eq , Encode , Decode , DefaultNoBound , Clone , TypeInfo , MaxEncodedLen ) ]
8+ #[ derive( PartialEqNoBound , Eq , Encode , Decode , DefaultNoBound , CloneNoBound , TypeInfo , MaxEncodedLen ) ]
9+ #[ codec( mel_bound( ) ) ]
910#[ scale_info( skip_type_params( S ) ) ]
10- pub struct OrderedSet < T , S : Get < u32 > > ( pub BoundedVec < T , S > ) ;
11+ pub struct OrderedSet < T : Ord + Encode + Decode + MaxEncodedLen + Clone + Eq + PartialEq , S : Get < u32 > > (
12+ pub BoundedVec < T , S > ,
13+ ) ;
1114
12- impl < T : Ord , S : Get < u32 > > OrderedSet < T , S > {
15+ impl < T : Ord + Encode + Decode + MaxEncodedLen + Clone + Eq + PartialEq , S : Get < u32 > > OrderedSet < T , S > {
1316 /// Create a new empty set
1417 pub fn new ( ) -> Self {
1518 Self ( BoundedVec :: default ( ) )
@@ -63,7 +66,9 @@ impl<T: Ord, S: Get<u32>> OrderedSet<T, S> {
6366 }
6467}
6568
66- impl < T : Ord , S : Get < u32 > > From < BoundedVec < T , S > > for OrderedSet < T , S > {
69+ impl < T : Ord + Encode + Decode + MaxEncodedLen + Clone + Eq + PartialEq , S : Get < u32 > > From < BoundedVec < T , S > >
70+ for OrderedSet < T , S >
71+ {
6772 fn from ( v : BoundedVec < T , S > ) -> Self {
6873 Self :: from ( v)
6974 }
@@ -72,7 +77,7 @@ impl<T: Ord, S: Get<u32>> From<BoundedVec<T, S>> for OrderedSet<T, S> {
7277#[ cfg( feature = "std" ) ]
7378impl < T , S > fmt:: Debug for OrderedSet < T , S >
7479where
75- T : fmt:: Debug ,
80+ T : Ord + Encode + Decode + MaxEncodedLen + Clone + Eq + PartialEq + fmt:: Debug ,
7681 S : Get < u32 > ,
7782{
7883 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
0 commit comments