Trait fera_graph::choose::Choose
[−]
[src]
pub trait Choose: WithEdge { fn choose_vertex<R: Rng>(&self, rng: R) -> Option<Vertex<Self>>; fn choose_out_neighbor<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> Option<Vertex<Self>>; fn choose_edge<R: Rng>(&self, rng: R) -> Option<Edge<Self>>; fn choose_out_edge<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> Option<Edge<Self>>; fn choose_vertex_iter<R: Rng>(&self, rng: R) -> ChooseVertexIter<Self, R> { ... } fn choose_out_neighbor_iter<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutNeighborIter<Self, R> { ... } fn choose_edge_iter<R: Rng>(&self, rng: R) -> ChooseEdgeIter<Self, R> { ... } fn choose_out_edge_iter<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutEdgeIter<Self, R> { ... } fn random_walk<R: Rng>(&self, rng: R) -> RandomWalk<Self, R> { ... } }
A graph from which vertices and edges can be randomly selected.
See the module documentation for examples.
Required Methods
fn choose_vertex<R: Rng>(&self, rng: R) -> Option<Vertex<Self>>
Returns a random vertex of this graph or None
if the graph has no vertices.
fn choose_out_neighbor<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> Option<Vertex<Self>>
&self,
v: Vertex<Self>,
rng: R
) -> Option<Vertex<Self>>
Returns a random neighbor vertex of v
or None
if v
has no neighbors.
fn choose_edge<R: Rng>(&self, rng: R) -> Option<Edge<Self>>
Returns a random edge of this graph or None
if the graph has no edges.
fn choose_out_edge<R: Rng>(&self, v: Vertex<Self>, rng: R) -> Option<Edge<Self>>
Returns a random out edge of v
or None
if v
has no out edges.
Provided Methods
fn choose_vertex_iter<R: Rng>(&self, rng: R) -> ChooseVertexIter<Self, R>
Returns an iterator that repeatedly calls choose_vertex
.
fn choose_out_neighbor_iter<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutNeighborIter<Self, R>
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutNeighborIter<Self, R>
Returns an iterator that repeatedly calls choose_out_neighbor(v)
.
fn choose_edge_iter<R: Rng>(&self, rng: R) -> ChooseEdgeIter<Self, R>
Returns an iterator that repeatedly calls choose_edge
.
fn choose_out_edge_iter<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutEdgeIter<Self, R>
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutEdgeIter<Self, R>
Returns an iterator that repeatedly calls choose_out_edge(v)
.
fn random_walk<R: Rng>(&self, rng: R) -> RandomWalk<Self, R>
Returns a iterator that produces a sequence of random edges that forms a walk, that is, the target vertex of the previous edge is the source vertex of the next edge.
Implementations on Foreign Types
impl<'a, G> Choose for &'a G where
G: 'a + Choose,
[src]
G: 'a + Choose,
fn choose_vertex<R: Rng>(&self, rng: R) -> Option<Vertex<Self>>
[src]
fn choose_out_neighbor<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> Option<Vertex<Self>>
[src]
&self,
v: Vertex<Self>,
rng: R
) -> Option<Vertex<Self>>
fn choose_edge<R: Rng>(&self, rng: R) -> Option<Edge<Self>>
[src]
fn choose_out_edge<R: Rng>(&self, v: Vertex<Self>, rng: R) -> Option<Edge<Self>>
[src]
fn choose_vertex_iter<R: Rng>(&self, rng: R) -> ChooseVertexIter<Self, R>
[src]
fn choose_out_neighbor_iter<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutNeighborIter<Self, R>
[src]
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutNeighborIter<Self, R>
fn choose_edge_iter<R: Rng>(&self, rng: R) -> ChooseEdgeIter<Self, R>
[src]
fn choose_out_edge_iter<R: Rng>(
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutEdgeIter<Self, R>
[src]
&self,
v: Vertex<Self>,
rng: R
) -> ChooseOutEdgeIter<Self, R>
fn random_walk<R: Rng>(&self, rng: R) -> RandomWalk<Self, R>
[src]
Implementors
impl<'a, G> Choose for Subgraph<'a, G> where
G: 'a + IncidenceGraph,impl<'a, G> Choose for SpanningSubgraph<'a, G> where
G: 'a + WithEdge + WithVertexProp<Vec<Edge<G>>> + Choose,impl<K: CompleteEdgeKind> Choose for Complete<K>
impl<V: Num, K: StaticEdgeKind> Choose for Static<V, K>