parity-common
parity-common copied to clipboard
Implement BoundedVec with bound on both end
Is there an existing issue?
- [X] I have searched the existing issues
Experiencing problems? Have you tried our Stack Exchange first?
- [X] This is not a support question.
Motivation
BoundedVec will not only bound its size in maximum limit but there shall also be minimum limit. This is useful in many case where pallet is expecting a vector within certain bounds eg: Some Name shall be greater than 3 element long but less than 500 and so on
Request
Extend BoundedVec implementation in frame_support to include another type Paramater LowerBound
and all the operation in BoundedVec gurantee this bound ( and also the current upperbound ).
If required, default LowerBound can be 0 so it does not change the behavior in places where lower bound is not required
Solution
** Explain Above **
( I can also take the responsibility to implement and raise the PR, but first i need confirmation if everyone else thinks this is worth having )
Are you willing to help with this request?
Yes!
If changing the implementation of Current BoundedVec is problematic we can also create new struct DoubleBoundedVec
to wrap BoundedVec
and inner limit
You should implement DoubleBoundedVec
(I don't like this name but also can't think of a better one) and then implement BoundedVec
on top of it. This way we can minimize the breaking change (no breaking change for existing BondedVec
user) and code duplications.