Skip to main content

ActivePathWeave

Trait ActivePathWeave 

Source
pub trait ActivePathWeave<K, N, T>: Weave<K, N, T>
where K: Hash + Copy + Eq + Ord, N: Node<K, T>,
{ type Active; // Required methods fn active(&self) -> &Self::Active; fn set_active_path(&mut self, active: impl Iterator<Item = K>); }
Expand description

A Weave where every Node in the active path is always considered active.

Required Associated Types§

Source

type Active

Identifiers of active nodes.

Required Methods§

Source

fn active(&self) -> &Self::Active

Returns a reference to the identifiers of active nodes.

Source

fn set_active_path(&mut self, active: impl Iterator<Item = K>)

Replaces the currently active path with the specified set of node IDs.

If the new active path would result in internal inconsistency, this function will correct the path in an implementation-specific manner.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<K, T, M, S> ActivePathWeave<K, IndependentNode<K, T, S>, T> for IndependentWeave<K, T, M, S>

Source§

type Active = HashSet<K, S>

Source§

impl<W, K, N, T, M> ActivePathWeave<K, N, T> for LoggedWeave<W, K, N, T, M>
where W: ActivePathWeave<K, N, T>, K: Hash + Copy + Eq + Ord, N: Node<K, T> + Clone,

Source§

type Active = <W as ActivePathWeave<K, N, T>>::Active

Source§

impl<W, K, N, T> ActivePathWeave<K, N, T> for CountedWeave<W, K, N, T>
where W: ActivePathWeave<K, N, T>, K: Hash + Copy + Eq + Ord, N: Node<K, T>,

Source§

type Active = <W as ActivePathWeave<K, N, T>>::Active