Trait ChangeMembers
pub trait ChangeMembers<AccountId>{
// 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§
fn change_members_sorted(
incoming: &[AccountId],
outgoing: &[AccountId],
sorted_new: &[AccountId],
)
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§
fn change_members(
incoming: &[AccountId],
outgoing: &[AccountId],
new: Vec<AccountId>,
)
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.
fn set_members_sorted(new_members: &[AccountId], old_members: &[AccountId])
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.
fn compute_members_diff_sorted(
new_members: &[AccountId],
old_members: &[AccountId],
) -> (Vec<AccountId>, Vec<AccountId>)
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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.