pub struct DirectedCsrGraph<NI, NV = (), EV = ()> where
    NI: Idx
{ /* private fields */ }

Implementations

Trait Implementations

Returns the number of edges where the given node is a source node.

Returns the number of edges where the given node is a target node.

Returns a slice of all nodes which are connected in outgoing direction to the given node, i.e., the given node is the source node of the connecting edge. Read more

Returns a slice of all nodes which are connected in incoming direction to the given node, i.e., the given node is the target node of the connecting edge. Read more

Returns a slice of all nodes which are connected in outgoing direction to the given node, i.e., the given node is the source node of the connecting edge. Read more

Returns a slice of all nodes which are connected in incoming direction to the given node, i.e., the given node is the target node of the connecting edge. Read more

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Returns the number of nodes in the graph.

Returns the number of edges in the graph.

The type returned in the event of a conversion error.

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

For each node calls a given function with the node and its corresponding mutable state in parallel based on the provided node partition.

The parallelization is done by means of a rayon based fork join with a task for each range in the provided node partition.

For each node calls a given function with the node and its corresponding mutable state in parallel.

The parallelization is done by means of a rayon based fork join with a task for each node.

Performs the conversion.

Creates a greedy range-based in degree partition of the nodes.

It is greedy in the sense that it goes through the node set only once and simply adds a new range to the result whenever the current range’s nodes’ in degrees sum up to at least the average node in degree.

Example
let graph: DirectedCsrGraph<u32> = GraphBuilder::new()
    .edges(vec![(1, 0), (1, 2), (2, 0), (3, 2)])
    .build();

let partition: Vec<Range<u32>> = graph.in_degree_partition(2);

assert_eq!(partition.len(), 2);
assert_eq!(partition[0], 0..1);
assert_eq!(partition[1], 1..4);

Performs the conversion.

Creates a greedy range-based out degree partition of the nodes.

It is greedy in the sense that it goes through the node set only once and simply adds a new range to the result whenever the current range’s nodes’ out degrees sum up to at least the average node out degree.

Example
let graph: DirectedCsrGraph<u32> = GraphBuilder::new()
    .edges(vec![(0, 1), (0, 2), (2, 1), (2, 3)])
    .build();

let partition: Vec<Range<u32>> = graph.out_degree_partition(2);

assert_eq!(partition.len(), 2);
assert_eq!(partition[0], 0..1);
assert_eq!(partition[1], 1..4);

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.