pub struct LinkGraph { /* private fields */ }Expand description
A linked implementation of the DCEL trait
Implementations§
Source§impl LinkGraph
 
impl LinkGraph
Sourcepub fn new_vertex(&mut self) -> LinkVertex
 
pub fn new_vertex(&mut self) -> LinkVertex
Adds a new vertex to this LinkGraph
Sourcepub fn new_dart(
    &mut self,
    from: LinkVertex,
    to: LinkVertex,
    prev: Option<LinkDart>,
    next: Option<LinkDart>,
    twin: Option<LinkDart>,
    face: Option<LinkFace>,
) -> LinkDart
 
pub fn new_dart( &mut self, from: LinkVertex, to: LinkVertex, prev: Option<LinkDart>, next: Option<LinkDart>, twin: Option<LinkDart>, face: Option<LinkFace>, ) -> LinkDart
Adds a new dart to this LinkGraph
Sourcepub fn new_edge(
    &mut self,
    from: LinkVertex,
    to: LinkVertex,
    prev: Option<LinkDart>,
    next: Option<LinkDart>,
    face: Option<LinkFace>,
    twin_face: Option<LinkFace>,
) -> (LinkDart, LinkDart)
 
pub fn new_edge( &mut self, from: LinkVertex, to: LinkVertex, prev: Option<LinkDart>, next: Option<LinkDart>, face: Option<LinkFace>, twin_face: Option<LinkFace>, ) -> (LinkDart, LinkDart)
Adds an edge to the graph
Sourcepub fn remove_edge(
    &mut self,
    from: &LinkVertex,
    dart: LinkDart,
) -> (LinkDart, LinkDart)
 
pub fn remove_edge( &mut self, from: &LinkVertex, dart: LinkDart, ) -> (LinkDart, LinkDart)
Removes the given dart and its twin from the graph
Trait Implementations§
Source§impl Embedding<LinkVertex, LinkDart, LinkFace, LinkGraphIter<LinkVertex>, LinkGraphIter<LinkDart>, LinkGraphIter<LinkFace>, LinkGraph> for MaximalPlanar
 
impl Embedding<LinkVertex, LinkDart, LinkFace, LinkGraphIter<LinkVertex>, LinkGraphIter<LinkDart>, LinkGraphIter<LinkFace>, LinkGraph> for MaximalPlanar
Source§fn embed(graph: StableGraph<(), (), Undirected>) -> LinkGraph
 
fn embed(graph: StableGraph<(), (), Undirected>) -> LinkGraph
Receives a graph as an Argument an returns the embedding
Source§impl GraphDCEL<LinkVertex, LinkDart, LinkFace, LinkGraphIter<LinkVertex>, LinkGraphIter<LinkDart>, LinkGraphIter<LinkFace>> for LinkGraph
 
impl GraphDCEL<LinkVertex, LinkDart, LinkFace, LinkGraphIter<LinkVertex>, LinkGraphIter<LinkDart>, LinkGraphIter<LinkFace>> for LinkGraph
Source§fn get_vertexes(&self) -> LinkGraphIter<LinkVertex> ⓘ
 
fn get_vertexes(&self) -> LinkGraphIter<LinkVertex> ⓘ
Returns all vertex in the graph as an iterator
Source§fn get_darts(&self) -> LinkGraphIter<LinkDart> ⓘ
 
fn get_darts(&self) -> LinkGraphIter<LinkDart> ⓘ
Returns all darts in the graph as an iterator
Source§fn get_faces(&self) -> LinkGraphIter<LinkFace> ⓘ
 
fn get_faces(&self) -> LinkGraphIter<LinkFace> ⓘ
Returns all faces in the graph as an iterator
Source§fn vertex_count(&self) -> usize
 
fn vertex_count(&self) -> usize
Returns the number of vertexes in the graph
Source§fn dart_count(&self) -> usize
 
fn dart_count(&self) -> usize
Returns the number of darts in the graph
Source§fn edge_count(&self) -> usize
 
fn edge_count(&self) -> usize
Returns the number of edges in the graph
Source§fn face_count(&self) -> usize
 
fn face_count(&self) -> usize
Returns the number of faces in the graph
Source§fn face_vertex_count(&self, face: &LinkFace) -> usize
 
fn face_vertex_count(&self, face: &LinkFace) -> usize
Returns the number of vertexes adjacent to the given face
Source§fn neighbors_count(&self, vertex: &LinkVertex) -> usize
 
fn neighbors_count(&self, vertex: &LinkVertex) -> usize
Returns the amount of vertex neighboring the given vertex
Source§fn neighbors(&self, vertex: &LinkVertex) -> Vec<LinkVertex>
 
fn neighbors(&self, vertex: &LinkVertex) -> Vec<LinkVertex>
Returns a vector of neighbors of the given vertex
Source§fn get_dart(&self, vertex: &LinkVertex, target: &LinkVertex) -> Option<LinkDart>
 
fn get_dart(&self, vertex: &LinkVertex, target: &LinkVertex) -> Option<LinkDart>
Returns the dart between to vertexes
Source§fn dart_vertex(&self, vertex: &LinkVertex) -> LinkDart
 
fn dart_vertex(&self, vertex: &LinkVertex) -> LinkDart
Returns the dart linked to the given vertex
Source§fn dart_face(&self, face: &LinkFace) -> LinkDart
 
fn dart_face(&self, face: &LinkFace) -> LinkDart
Returns the the dart linked to the given face
Source§fn dart_target(&self, dart: &LinkDart) -> LinkVertex
 
fn dart_target(&self, dart: &LinkDart) -> LinkVertex
Returns the target vertex of the given dart
Source§fn add_vertex(&mut self) -> LinkVertex
 
fn add_vertex(&mut self) -> LinkVertex
Adds a new vertex
Source§fn add_dart(
    &mut self,
    from: LinkVertex,
    to: LinkVertex,
    prev: Option<LinkDart>,
    next: Option<LinkDart>,
    twin: Option<LinkDart>,
    face: Option<LinkFace>,
) -> LinkDart
 
fn add_dart( &mut self, from: LinkVertex, to: LinkVertex, prev: Option<LinkDart>, next: Option<LinkDart>, twin: Option<LinkDart>, face: Option<LinkFace>, ) -> LinkDart
Adds a new dart
Source§fn vertex_by_id(&self, id: usize) -> Option<LinkVertex>
 
fn vertex_by_id(&self, id: usize) -> Option<LinkVertex>
Returns a vertex specified by this id
Source§impl<'a> GraphWalk<'a, LinkVertex, LinkDart> for LinkGraph
 
impl<'a> GraphWalk<'a, LinkVertex, LinkDart> for LinkGraph
Source§fn nodes(&'a self) -> Nodes<'a, LinkVertex>
 
fn nodes(&'a self) -> Nodes<'a, LinkVertex>
Returns all the nodes in this graph.
Source§fn source(&'a self, edge: &LinkDart) -> LinkVertex
 
fn source(&'a self, edge: &LinkDart) -> LinkVertex
The source node for 
edge.Source§fn target(&'a self, edge: &LinkDart) -> LinkVertex
 
fn target(&'a self, edge: &LinkDart) -> LinkVertex
The target node for 
edge.Source§impl<'a> Labeller<'a, LinkVertex, LinkDart> for LinkGraph
 
impl<'a> Labeller<'a, LinkVertex, LinkDart> for LinkGraph
Source§fn node_id(&'a self, vertex: &LinkVertex) -> Id<'a>
 
fn node_id(&'a self, vertex: &LinkVertex) -> Id<'a>
Maps 
n to a unique identifier with respect to self. The
implementer is responsible for ensuring that the returned name
is a valid DOT identifier.Source§fn node_label(&'a self, n: &N) -> LabelText<'a>
 
fn node_label(&'a self, n: &N) -> LabelText<'a>
Maps 
n to a label that will be used in the rendered output.
The label need not be unique, and may be the empty string; the
default is just the output from node_id.Source§fn edge_label(&'a self, e: &E) -> LabelText<'a>
 
fn edge_label(&'a self, e: &E) -> LabelText<'a>
Maps 
e to a label that will be used in the rendered output.
The label need not be unique, and may be the empty string; the
default is in fact the empty string.Source§fn node_style(&'a self, _n: &N) -> Style
 
fn node_style(&'a self, _n: &N) -> Style
Maps 
n to a style that will be used in the rendered output.Source§fn edge_end_arrow(&'a self, _e: &E) -> Arrow
 
fn edge_end_arrow(&'a self, _e: &E) -> Arrow
Maps 
e to arrow style that will be used on the end of an edge.
Defaults to default arrow style.Source§fn edge_start_arrow(&'a self, _e: &E) -> Arrow
 
fn edge_start_arrow(&'a self, _e: &E) -> Arrow
Maps 
e to arrow style that will be used on the end of an edge.
Defaults to default arrow style.Source§fn edge_style(&'a self, _e: &E) -> Style
 
fn edge_style(&'a self, _e: &E) -> Style
Maps 
e to a style that will be used in the rendered output.Auto Trait Implementations§
impl Freeze for LinkGraph
impl !RefUnwindSafe for LinkGraph
impl !Send for LinkGraph
impl !Sync for LinkGraph
impl Unpin for LinkGraph
impl !UnwindSafe for LinkGraph
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> FmtForward for T
 
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
Causes 
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
Causes 
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
Causes 
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
Causes 
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
 
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
Causes 
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
Causes 
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
Causes 
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
Causes 
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> FmtForward for T
 
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
Source§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
Source§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
Source§impl<T> Pipe for Twhere
    T: ?Sized,
 
impl<T> Pipe for Twhere
    T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
 
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
Borrows 
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
Mutably borrows 
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
 
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R,
) -> R
 
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
 
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows 
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
 
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows 
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
 
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows 
self, then passes self.deref() into the pipe function.Source§impl<T> PipeAsRef for T
 
impl<T> PipeAsRef for T
Source§impl<T> PipeBorrow for T
 
impl<T> PipeBorrow for T
Source§impl<T> PipeDeref for T
 
impl<T> PipeDeref for T
Source§impl<T> PipeRef for T
 
impl<T> PipeRef for T
Source§impl<T> Tap for T
 
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
 
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the 
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
 
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the 
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
 
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the 
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
 
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the 
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
 
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the 
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
 
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the 
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
 
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls 
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
 
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls 
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
 
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls 
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
 
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls 
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
 
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls 
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
 
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls 
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
 
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls 
.tap_deref() only in debug builds, and is erased in release
builds.Source§impl<T> Tap for T
 
impl<T> Tap for T
Source§fn tap<F, R>(self, func: F) -> Selfwhere
    F: FnOnce(&Self) -> R,
 
fn tap<F, R>(self, func: F) -> Selfwhere
    F: FnOnce(&Self) -> R,
Provides immutable access for inspection. Read more
Source§fn tap_dbg<F, R>(self, func: F) -> Selfwhere
    F: FnOnce(&Self) -> R,
 
fn tap_dbg<F, R>(self, func: F) -> Selfwhere
    F: FnOnce(&Self) -> R,
Calls 
tap in debug builds, and does nothing in release builds.Source§fn tap_mut<F, R>(self, func: F) -> Selfwhere
    F: FnOnce(&mut Self) -> R,
 
fn tap_mut<F, R>(self, func: F) -> Selfwhere
    F: FnOnce(&mut Self) -> R,
Provides mutable access for modification. Read more
Source§fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere
    F: FnOnce(&mut Self) -> R,
 
fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere
    F: FnOnce(&mut Self) -> R,
Calls 
tap_mut in debug builds, and does nothing in release builds.Source§impl<T, U> TapAsRef<U> for Twhere
    U: ?Sized,
 
impl<T, U> TapAsRef<U> for Twhere
    U: ?Sized,
Source§fn tap_ref<F, R>(self, func: F) -> Self
 
fn tap_ref<F, R>(self, func: F) -> Self
Provides immutable access to the reference for inspection.
Source§fn tap_ref_dbg<F, R>(self, func: F) -> Self
 
fn tap_ref_dbg<F, R>(self, func: F) -> Self
Calls 
tap_ref in debug builds, and does nothing in release builds.Source§fn tap_ref_mut<F, R>(self, func: F) -> Self
 
fn tap_ref_mut<F, R>(self, func: F) -> Self
Provides mutable access to the reference for modification.
Source§impl<T, U> TapBorrow<U> for Twhere
    U: ?Sized,
 
impl<T, U> TapBorrow<U> for Twhere
    U: ?Sized,
Source§fn tap_borrow<F, R>(self, func: F) -> Self
 
fn tap_borrow<F, R>(self, func: F) -> Self
Provides immutable access to the borrow for inspection. Read more
Source§fn tap_borrow_dbg<F, R>(self, func: F) -> Self
 
fn tap_borrow_dbg<F, R>(self, func: F) -> Self
Calls 
tap_borrow in debug builds, and does nothing in release builds.Source§fn tap_borrow_mut<F, R>(self, func: F) -> Self
 
fn tap_borrow_mut<F, R>(self, func: F) -> Self
Provides mutable access to the borrow for modification.
Source§impl<T> TapDeref for T
 
impl<T> TapDeref for T
Source§fn tap_deref_dbg<F, R>(self, func: F) -> Self
 
fn tap_deref_dbg<F, R>(self, func: F) -> Self
Calls 
tap_deref in debug builds, and does nothing in release builds.Source§fn tap_deref_mut<F, R>(self, func: F) -> Self
 
fn tap_deref_mut<F, R>(self, func: F) -> Self
Mutably dereferences 
self for modification.