pub struct PartitionResult {
pub partitions: Vec<AHashSet<i64>>,
pub cut_edges: Vec<(i64, i64)>,
pub node_to_partition: HashMap<i64, usize>,
}Expand description
Result of graph partitioning computation.
Represents a partitioning of a graph into k subsets, used for sharding, load balancing, and locality optimization in distributed systems.
§Fields
partitions: Vector of partitions, each a set of node IDscut_edges: Edges crossing partition boundaries (communication cost)node_to_partition: Mapping from node ID to partition index (0-based)
§Example
ⓘ
let graph = SqliteGraph::open_in_memory()?;
// ... build graph ...
let result = partition_kway(&graph, &PartitionConfig::default())?;
println!("Number of partitions: {}", result.partitions.len());
println!("Cut edges (communication cost): {}", result.cut_edges.len());
// Find which partition node 5 is in
if let Some(&pidx) = result.node_to_partition.get(&5) {
println!("Node 5 is in partition {}", pidx);
}Fields§
§partitions: Vec<AHashSet<i64>>Vector of partitions, each a set of node IDs
cut_edges: Vec<(i64, i64)>Edges crossing partition boundaries (for communication cost analysis)
node_to_partition: HashMap<i64, usize>Node ID -> partition index mapping
Trait Implementations§
Source§impl Clone for PartitionResult
impl Clone for PartitionResult
Source§fn clone(&self) -> PartitionResult
fn clone(&self) -> PartitionResult
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 PartitionResult
impl Debug for PartitionResult
Source§impl PartialEq for PartitionResult
impl PartialEq for PartitionResult
impl Eq for PartitionResult
impl StructuralPartialEq for PartitionResult
Auto Trait Implementations§
impl Freeze for PartitionResult
impl RefUnwindSafe for PartitionResult
impl Send for PartitionResult
impl Sync for PartitionResult
impl Unpin for PartitionResult
impl UnwindSafe for PartitionResult
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§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<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