AdjSet

Struct AdjSet 

Source
pub struct AdjSet<V: AdjSetVertex, K: AdjSetEdgeKind<V>> { /* private fields */ }

Implementations§

Source§

impl<V, K> AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source

pub fn new() -> Self

Source

pub fn add_vertex(&mut self, v: V)

Source

pub fn add_edge(&mut self, u: V, v: V) -> K::Edge

Trait Implementations§

Source§

impl<V, K> Adjacency for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

fn out_neighbors(&self, v: Vertex<Self>) -> OutNeighborIter<'_, Self>

Source§

fn out_degree(&self, v: Vertex<Self>) -> usize

Source§

impl<V, K> Default for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<V, K> EdgeList for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

fn edges(&self) -> EdgeIter<'_, Self>

Source§

fn num_edges(&self) -> usize

Source§

fn get_edge_by_ends( &self, u: Vertex<Self>, v: Vertex<Self>, ) -> Option<Edge<Self>>

Source§

fn edges_ends(&self) -> EdgesEnds<'_, Self, EdgeIter<'_, Self>>

Source§

fn edges_with_ends(&self) -> EdgesWithEnds<'_, Self, EdgeIter<'_, Self>>

Source§

fn edge_by_ends(&self, u: Vertex<Self>, v: Vertex<Self>) -> Edge<Self>

Source§

impl<'a, V, K> EdgeTypes<'a, AdjSet<V, K>> for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

type EdgeIter = Edges<'a, V, K>

Source§

type OutEdgeIter = OutEdges<'a, V, K>

Source§

impl<V, K> Incidence for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

fn out_edges(&self, v: Vertex<Self>) -> OutEdgeIter<'_, Self>

Source§

fn out_edges_ends( &self, v: Vertex<Self>, ) -> EdgesEnds<'_, Self, OutEdgeIter<'_, Self>>

Source§

fn out_edges_with_ends( &self, v: Vertex<Self>, ) -> EdgesWithEnds<'_, Self, OutEdgeIter<'_, Self>>

Source§

impl<V, K> VertexList for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

fn vertices(&self) -> VertexIter<'_, Self>

Source§

fn num_vertices(&self) -> usize

Source§

impl<'a, V, K> VertexTypes<'a, AdjSet<V, K>> for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

impl<V, K> WithEdge for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

type Kind = K

Source§

type Edge = <K as AdjSetEdgeKind<V>>::Edge

Source§

type OptionEdge = Option<<K as AdjSetEdgeKind<V>>::Edge>

Source§

fn source(&self, e: Edge<Self>) -> Vertex<Self>

Source§

fn target(&self, e: Edge<Self>) -> Vertex<Self>

Source§

fn orientation(&self, _e: Edge<Self>) -> Orientation

Source§

fn get_reverse(&self, e: Edge<Self>) -> Option<Edge<Self>>

Source§

fn ends<'a, I, O>(&'a self, item: I) -> O
where I: Ends<'a, Self, O>,

Source§

fn end_vertices(&self, e: Edge<Self>) -> (Vertex<Self>, Vertex<Self>)

Source§

fn with_ends<I>(&self, iter: I) -> EdgesWithEnds<'_, Self, I::IntoIter>
where I: IntoIterator, I::Item: IntoOwned<Edge<Self>>,

Source§

fn opposite(&self, u: Vertex<Self>, e: Edge<Self>) -> Vertex<Self>

Source§

fn is_incident(&self, v: Vertex<Self>, e: Edge<Self>) -> bool

Source§

fn reverse(&self, e: Edge<Self>) -> Edge<Self>
where Self: WithEdge<Kind = Undirected>,

Source§

fn edge_none() -> OptionEdge<Self>

Source§

fn edge_some(e: Edge<Self>) -> OptionEdge<Self>

Source§

fn edge_prop<P, T>(&self, value: T) -> P
where P: EdgePropMutNew<Self, T>, T: Clone,

Source§

fn edge_prop_from_fn<P, F, T>(&self, fun: F) -> P
where Self: EdgeList, P: EdgePropMutNew<Self, T>, F: FnMut(Edge<Self>) -> T, T: Default + Clone,

Source§

impl<V, K, T> WithEdgeProp<T> for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>, T: Clone,

Source§

type EdgeProp = HashMapProp<<K as AdjSetEdgeKind<V>>::Edge, T>

Source§

fn default_edge_prop(&self, value: T) -> DefaultEdgePropMut<Self, T>
where T: Clone,

Creates a new default edge property where the initial value associated with each edge is value.
Source§

fn default_edge_prop_from_fn<P, F>(&self, fun: F) -> P
where Self: EdgeList, P: EdgePropMutNew<Self, T>, F: FnMut(Edge<Self>) -> T, T: Default + Clone,

Creates a new default edge property where the initial value associated with each edge e is produced by fun(e).
Source§

impl<V, K> WithVertex for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>,

Source§

type Vertex = V

Source§

type OptionVertex = Option<V>

Source§

fn vertex_none() -> OptionVertex<Self>

Source§

fn vertex_some(v: Vertex<Self>) -> OptionVertex<Self>

Source§

fn vertex_prop<P, T>(&self, value: T) -> P
where P: VertexPropMutNew<Self, T>, T: Clone,

Source§

fn vertex_prop_from_fn<P, T, F>(&self, fun: F) -> P
where Self: VertexList, P: VertexPropMutNew<Self, T>, F: FnMut(Vertex<Self>) -> T, T: Default + Clone,

Source§

impl<V, K, T> WithVertexProp<T> for AdjSet<V, K>
where V: AdjSetVertex, K: AdjSetEdgeKind<V>, T: Clone,

Source§

type VertexProp = HashMapProp<V, T>

The vertex property type.
Source§

fn default_vertex_prop(&self, value: T) -> DefaultVertexPropMut<Self, T>
where T: Clone,

Creates a new default vertex property where the initial value associated with each vertex is value.
Source§

fn default_vertex_prop_from_fn<P, F>(&self, fun: F) -> P
where Self: VertexList, P: VertexPropMutNew<Self, T>, F: FnMut(Vertex<Self>) -> T, T: Default + Clone,

Creates a new default vertex property where the initial value associated with each vertex v is produced by fun(v).

Auto Trait Implementations§

§

impl<V, K> Freeze for AdjSet<V, K>

§

impl<V, K> RefUnwindSafe for AdjSet<V, K>

§

impl<V, K> Send for AdjSet<V, K>
where K: Send, V: Send,

§

impl<V, K> Sync for AdjSet<V, K>
where K: Sync, V: Sync,

§

impl<V, K> Unpin for AdjSet<V, K>
where K: Unpin, V: Unpin,

§

impl<V, K> UnwindSafe for AdjSet<V, K>
where V: UnwindSafe, K: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<G> Bfs for G
where G: WithEdge,

Source§

fn bfs<V>( &self, vis: V, ) -> BfsAlg<&Self, V, AllVertices<'_, Self>, NewVertexProp<'_, Self, Color>, Owned<BfsQueue<Self>>>
where V: Visitor<Self>,

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<G> Components for G
where G: Incidence,

Source§

impl<G> Cycles for G
where G: Incidence,

Source§

impl<G> Degrees for G
where G: Adjacency,

Source§

fn degree_spanning_subgraph<I>( &self, edges: I, ) -> DefaultVertexPropMut<Self, u32>
where Self: WithEdge + WithVertexProp<u32>, I: IntoIterator, I::Item: IntoOwned<Edge<Self>>,

Source§

fn degree_add<P, I>(&self, degree: &mut P, edges: I)
where Self: WithEdge, P: VertexPropMut<Self, u32>, I: IntoIterator, I::Item: IntoOwned<Edge<Self>>,

Source§

fn is_k_regular(&self, k: usize) -> bool
where Self: WithEdge<Kind = Undirected> + VertexList,

Source§

fn is_regular(&self) -> bool
where Self: WithEdge<Kind = Undirected> + VertexList,

Source§

fn maximum_out_degree(&self) -> Option<usize>
where Self: VertexList,

Source§

fn minimum_out_degree(&self) -> Option<usize>
where Self: VertexList,

Source§

fn is_isolated(&self, v: Vertex<Self>) -> bool
where Self: WithEdge<Kind = Undirected>,

Source§

fn is_pendant(&self, v: Vertex<Self>) -> bool
where Self: WithEdge<Kind = Undirected>,

Source§

impl<G> Dfs for G
where G: WithEdge,

Source§

fn dfs<V>( &self, vis: V, ) -> DfsAlg<&Self, V, AllVertices<'_, Self>, NewVertexProp<'_, Self, Color>, Owned<DfsStack<'_, Self>>>
where V: Visitor<Self>,

Source§

impl<G> Distances for G
where G: Incidence,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoOwned<T> for T

Source§

fn into_owned(self) -> T

Source§

impl<G> Paths for G
where G: Incidence,

Source§

fn find_path(&self, u: Vertex<Self>, v: Vertex<Self>) -> Option<Vec<Edge<Self>>>
where Self: WithVertexProp<Color>,

Source§

fn is_walk<I>(&self, edges: I) -> bool
where I: IntoIterator, I::Item: IntoOwned<Edge<Self>>,

Source§

fn is_path<I>(&self, edges: I) -> bool
where Self: WithVertexProp<bool>, I: IntoIterator, I::Item: IntoOwned<Edge<Self>>,

Source§

impl<G> Prim for G
where G: Incidence,

Source§

fn prim<W, T>( &self, w: W, ) -> PrimAlg<&Self, W, NewVertexProp<'_, Self, Color>, NewVertexProp<'_, Self, OptionEdge<Self>>, Owned<BinaryHeap<QueueItem<T, Vertex<Self>>>>, PhantomData<T>>
where W: EdgePropGet<Self, T>, T: Ord,

Source§

impl<G> RecursiveDfs for G
where G: WithEdge,

Source§

fn recursive_dfs<V>( &self, vis: V, ) -> RecursiveDfsAlg<&Self, V, AllVertices<'_, Self>, NewVertexProp<'_, Self, Color>>
where V: Visitor<Self>,

Source§

impl<G> Sets for G

Source§

fn vertices_complement<I>(&self, vertices: I) -> VerticesComplement<'_, Self>

Source§

fn edges_complement<I>(&self, edges: I) -> EdgesComplement<'_, Self>
where Self: EdgeList + WithEdgeProp<bool>, I: IntoIterator, I::Item: IntoOwned<Edge<Self>>,

Source§

fn independent_vertex_set_from_iter<I>( &self, vertices: I, ) -> IndependentVertexSetFromIter<'_, Self, I::IntoIter>

Source§

fn is_independent_vertex_set<I>(&self, vertices: I) -> bool

Source§

impl<G> Trees for G
where G: Incidence,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.