#[non_exhaustive]pub enum GraphPartitionMethod {
HashBased,
EdgeCut,
VertexCut,
Fennel,
}Expand description
Method used to partition a graph’s vertices across shards.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
HashBased
Hash-based: vertex_id % n_partitions (deterministic, zero overhead).
EdgeCut
Edge-cut: assign each edge to the source vertex’s shard.
VertexCut
Vertex-cut: assign each edge to the shard of the lower-degree endpoint.
Fennel
Streaming FENNEL (Tsourakakis et al. 2014): maximise local density while penalising shard imbalance.
Trait Implementations§
Source§impl Clone for GraphPartitionMethod
impl Clone for GraphPartitionMethod
Source§fn clone(&self) -> GraphPartitionMethod
fn clone(&self) -> GraphPartitionMethod
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GraphPartitionMethod
impl Debug for GraphPartitionMethod
Source§impl PartialEq for GraphPartitionMethod
impl PartialEq for GraphPartitionMethod
impl Eq for GraphPartitionMethod
impl StructuralPartialEq for GraphPartitionMethod
Auto Trait Implementations§
impl Freeze for GraphPartitionMethod
impl RefUnwindSafe for GraphPartitionMethod
impl Send for GraphPartitionMethod
impl Sync for GraphPartitionMethod
impl Unpin for GraphPartitionMethod
impl UnsafeUnpin for GraphPartitionMethod
impl UnwindSafe for GraphPartitionMethod
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more