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 active path.

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