Struct petgraph::graph::Frozen[][src]

pub struct Frozen<'a, G: 'a>(_);
Expand description

Frozen is a graph wrapper.

The Frozen only allows shared access (read-only) to the underlying graph G, but it allows mutable access to its node and edge weights.

This is used to ensure immutability of the graph’s structure while permitting weights to be both read and written.

See indexing implementations and the traits Data and DataMap for read-write access to the graph’s weights.

Implementations

impl<'a, G> Frozen<'a, G>[src]

pub fn new(gr: &'a mut G) -> Self[src]

Create a new Frozen from a mutable reference to a graph.

impl<'a, N, E, Ty, Ix> Frozen<'a, Graph<N, E, Ty, Ix>> where
    Ty: EdgeType,
    Ix: IndexType
[src]

pub fn index_twice_mut<T, U>(
    &mut self,
    i: T,
    j: U
) -> (&mut <Graph<N, E, Ty, Ix> as Index<T>>::Output, &mut <Graph<N, E, Ty, Ix> as Index<U>>::Output) where
    Graph<N, E, Ty, Ix>: IndexMut<T> + IndexMut<U>,
    T: GraphIndex,
    U: GraphIndex
[src]

Index the Graph by two indices, any combination of node or edge indices is fine.

Panics if the indices are equal or if they are out of bounds.

Trait Implementations

impl<'a, G> Data for Frozen<'a, G> where
    G: Data
[src]

impl<'a, G> DataMap for Frozen<'a, G> where
    G: DataMap
[src]

fn node_weight(&self, id: Self::NodeId) -> Option<&Self::NodeWeight>[src]

fn edge_weight(&self, id: Self::EdgeId) -> Option<&Self::EdgeWeight>[src]

impl<'a, G> DataMapMut for Frozen<'a, G> where
    G: DataMapMut
[src]

fn node_weight_mut(&mut self, id: Self::NodeId) -> Option<&mut Self::NodeWeight>[src]

fn edge_weight_mut(&mut self, id: Self::EdgeId) -> Option<&mut Self::EdgeWeight>[src]

impl<'a, G> Deref for Frozen<'a, G>[src]

Deref allows transparent access to all shared reference (read-only) functionality in the underlying graph.

type Target = G

The resulting type after dereferencing.

fn deref(&self) -> &G[src]

Dereferences the value.

impl<'a, G> GetAdjacencyMatrix for Frozen<'a, G> where
    G: GetAdjacencyMatrix
[src]

type AdjMatrix = G::AdjMatrix

The associated adjacency matrix type

fn adjacency_matrix(&self) -> Self::AdjMatrix[src]

Create the adjacency matrix

fn is_adjacent(
    &self,
    matrix: &Self::AdjMatrix,
    a: Self::NodeId,
    b: Self::NodeId
) -> bool
[src]

Return true if there is an edge from a to b, false otherwise. Read more

impl<'a, G> GraphBase for Frozen<'a, G> where
    G: GraphBase
[src]

type NodeId = G::NodeId

node identifier

type EdgeId = G::EdgeId

edge identifier

impl<'a, G> GraphProp for Frozen<'a, G> where
    G: GraphProp
[src]

type EdgeType = G::EdgeType

The kind edges in the graph.

fn is_directed(&self) -> bool[src]

impl<'a, G, I> Index<I> for Frozen<'a, G> where
    G: Index<I>, 
[src]

type Output = G::Output

The returned type after indexing.

fn index(&self, i: I) -> &G::Output[src]

Performs the indexing (container[index]) operation. Read more

impl<'a, G, I> IndexMut<I> for Frozen<'a, G> where
    G: IndexMut<I>, 
[src]

fn index_mut(&mut self, i: I) -> &mut G::Output[src]

Performs the mutable indexing (container[index]) operation. Read more

impl<'a, 'b, G> IntoEdgeReferences for &'b Frozen<'a, G> where
    G: IntoEdgeReferences
[src]

impl<'a, 'b, G> IntoEdges for &'b Frozen<'a, G> where
    G: IntoEdges
[src]

type Edges = G::Edges

fn edges(self, a: Self::NodeId) -> Self::Edges[src]

impl<'a, 'b, G> IntoEdgesDirected for &'b Frozen<'a, G> where
    G: IntoEdgesDirected
[src]

impl<'a, 'b, G> IntoNeighbors for &'b Frozen<'a, G> where
    G: IntoNeighbors
[src]

type Neighbors = G::Neighbors

fn neighbors(self, a: Self::NodeId) -> Self::Neighbors[src]

Return an iterator of the neighbors of node a.

impl<'a, 'b, G> IntoNeighborsDirected for &'b Frozen<'a, G> where
    G: IntoNeighborsDirected
[src]

type NeighborsDirected = G::NeighborsDirected

fn neighbors_directed(
    self,
    n: Self::NodeId,
    d: Direction
) -> Self::NeighborsDirected
[src]

impl<'a, 'b, G> IntoNodeIdentifiers for &'b Frozen<'a, G> where
    G: IntoNodeIdentifiers
[src]

impl<'a, 'b, G> IntoNodeReferences for &'b Frozen<'a, G> where
    G: IntoNodeReferences
[src]

impl<'a, G> NodeCount for Frozen<'a, G> where
    G: NodeCount
[src]

fn node_count(&self) -> usize[src]

impl<'a, G> NodeIndexable for Frozen<'a, G> where
    G: NodeIndexable
[src]

fn node_bound(&self) -> usize[src]

Return an upper bound of the node indices in the graph (suitable for the size of a bitmap). Read more

fn to_index(&self, a: Self::NodeId) -> usize[src]

Convert a to an integer index.

fn from_index(&self, i: usize) -> Self::NodeId[src]

Convert i to a node index

impl<'a, G> Visitable for Frozen<'a, G> where
    G: Visitable
[src]

type Map = G::Map

The associated map type

fn visit_map(&self) -> Self::Map[src]

Create a new visitor map

fn reset_map(&self, map: &mut Self::Map)[src]

Reset the visitor map (and resize to new size of graph if needed)

impl<'a, G> NodeCompactIndexable for Frozen<'a, G> where
    G: NodeCompactIndexable
[src]

Auto Trait Implementations

impl<'a, G> RefUnwindSafe for Frozen<'a, G> where
    G: RefUnwindSafe

impl<'a, G> Send for Frozen<'a, G> where
    G: Send

impl<'a, G> Sync for Frozen<'a, G> where
    G: Sync

impl<'a, G> Unpin for Frozen<'a, G>

impl<'a, G> !UnwindSafe for Frozen<'a, G>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.