//! ranks in the system thus allowing potentially public membership. A member of at least a given
//! rank can be selected at random in O(1) time, allowing for various games to be constructed using
//! all operations (save one) are O(1) in complexity. The only operation which is not O(1) is the
//! Different ranks have different voting power, and are able to vote in different polls. In general
//! rank privileges are cumulative. Higher ranks are able to vote in any polls open to lower ranks.
//! controls the weight of a vote given the voter's rank compared to the minimum rank of the poll.
/// Vote-weight scheme where all voters get one vote plus an additional vote for every excess rank
/// Vote-weight scheme where all voters get one vote plus additional votes for every excess rank
/// Guard to ensure that the given origin is a member of the collective. The rank of the member is
/// Guard to ensure that the given origin is a member of the collective. The rank of the member is
impl<T: Config<I>, I: 'static> EnsureOriginWithArg<T::RuntimeOrigin, Rank> for EnsureOfRank<T, I> {
fn try_origin(o: T::RuntimeOrigin, min_rank: &Rank) -> Result<Self::Success, T::RuntimeOrigin> {
"Total count of `Members` should be greater than or equal to the number of `MemberIndex` of a particular `Rank` in `MemberCount`."
"Sum of `MemberCount` index should be the same as the sum of all the index attained for rank possessed by `Members`"
"`Rank` of the member `who` in `IdToIndex` should be the same as the `Rank` of the member `who` in `Members`"