pub trait ChangeMembers<AccountId: Clone + Ord> {
    // Required method
    fn change_members_sorted(
        incoming: &[AccountId],
        outgoing: &[AccountId],
        sorted_new: &[AccountId]
    );

    // Provided methods
    fn change_members(
        incoming: &[AccountId],
        outgoing: &[AccountId],
        new: Vec<AccountId>
    ) { ... }
    fn set_members_sorted(new_members: &[AccountId], old_members: &[AccountId]) { ... }
    fn compute_members_diff_sorted(
        new_members: &[AccountId],
        old_members: &[AccountId]
    ) -> (Vec<AccountId>, Vec<AccountId>) { ... }
    fn set_prime(_prime: Option<AccountId>) { ... }
    fn get_prime() -> Option<AccountId> { ... }
}
Expand description

Trait for type that can handle incremental changes to a set of account IDs.

Required Methods§

source

fn change_members_sorted( incoming: &[AccountId], outgoing: &[AccountId], sorted_new: &[AccountId] )

A number of members _incoming just joined the set and replaced some _outgoing ones. The new set is thus given by sorted_new and must be sorted.

NOTE: This is the only function that needs to be implemented in ChangeMembers.

This resets any previous value of prime.

Provided Methods§

source

fn change_members( incoming: &[AccountId], outgoing: &[AccountId], new: Vec<AccountId> )

A number of members incoming just joined the set and replaced some outgoing ones. The new set is given by new, and need not be sorted.

This resets any previous value of prime.

source

fn set_members_sorted(new_members: &[AccountId], old_members: &[AccountId])

Set the new members; they must already be sorted. This will compute the diff and use it to call change_members_sorted.

This resets any previous value of prime.

source

fn compute_members_diff_sorted( new_members: &[AccountId], old_members: &[AccountId] ) -> (Vec<AccountId>, Vec<AccountId>)

Compute diff between new and old members; they must already be sorted.

Returns incoming and outgoing members.

source

fn set_prime(_prime: Option<AccountId>)

Set the prime member.

source

fn get_prime() -> Option<AccountId>

Get the current prime.

Implementations on Foreign Types§

source§

impl<T: Clone + Ord> ChangeMembers<T> for ()

Implementors§