[][src]Trait rs_graph::attributed::AttributedGraph

pub trait AttributedGraph<'a> {
    type Graph: GraphType<'a>;
    type Attributes: Attributes<Node = <Self::Graph as GraphType<'a>>::Node, Edge = <Self::Graph as GraphType<'a>>::Edge>;
    fn split(&'a mut self) -> (&Self::Graph, Self::Attributes);
fn attr(&'a self) -> &'a <Self::Attributes as Attributes>::GraphAttr;
fn attr_mut(
        &'a mut self
    ) -> &'a mut <Self::Attributes as Attributes>::GraphAttr;
fn node(
        &'a self,
        u: <Self::Graph as GraphType<'a>>::Node
    ) -> &'a <Self::Attributes as Attributes>::NodeAttr;
fn node_mut(
        &'a mut self,
        u: <Self::Graph as GraphType<'a>>::Node
    ) -> &'a mut <Self::Attributes as Attributes>::NodeAttr;
fn edge(
        &'a self,
        e: <Self::Graph as GraphType<'a>>::Edge
    ) -> &'a <Self::Attributes as Attributes>::EdgeAttr;
fn edge_mut(
        &'a mut self,
        e: <Self::Graph as GraphType<'a>>::Edge
    ) -> &'a mut <Self::Attributes as Attributes>::EdgeAttr; }
Deprecated since 0.17.0:

use rs-graph-derive crate instead

An attributed graph.

This trait adds three attributes to a graph:

  1. attributes for the graph itself via attr and attr_mut.
  2. attributes for the nodes via node and node_mut.
  3. attributes for the edges via node and node_mut.

Furthermore, if you need to mutate some of the attributes, the split method, splits the graph into two references: one for pure read-only graph access and one for mutable access to the attributes. This allows to mutate the attributes while ensuring that the graph structure remains unchanged (and thus no nodes or edges may be added.)

Associated Types

type Graph: GraphType<'a>

Deprecated since 0.17.0:

use rs-graph-derive crate instead

type Attributes: Attributes<Node = <Self::Graph as GraphType<'a>>::Node, Edge = <Self::Graph as GraphType<'a>>::Edge>

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Loading content...

Required methods

fn split(&'a mut self) -> (&Self::Graph, Self::Attributes)

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Return a read-only graph reference and a mutable attributes reference.

fn attr(&'a self) -> &'a <Self::Attributes as Attributes>::GraphAttr

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Return the graph attributes.

fn attr_mut(&'a mut self) -> &'a mut <Self::Attributes as Attributes>::GraphAttr

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Return the graph attributes.

fn node(
    &'a self,
    u: <Self::Graph as GraphType<'a>>::Node
) -> &'a <Self::Attributes as Attributes>::NodeAttr

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Return the attributes of a node.

fn node_mut(
    &'a mut self,
    u: <Self::Graph as GraphType<'a>>::Node
) -> &'a mut <Self::Attributes as Attributes>::NodeAttr

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Return the attributes of a node.

fn edge(
    &'a self,
    e: <Self::Graph as GraphType<'a>>::Edge
) -> &'a <Self::Attributes as Attributes>::EdgeAttr

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Return the attributes of an edge.

fn edge_mut(
    &'a mut self,
    e: <Self::Graph as GraphType<'a>>::Edge
) -> &'a mut <Self::Attributes as Attributes>::EdgeAttr

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Return the attributes of an edge.

Loading content...

Implementors

impl<'a, G, Gx, Nx, Ex> AttributedGraph<'a> for Attributed<G, Gx, Nx, Ex> where
    G: 'a + IndexGraph<'a>,
    Gx: 'a + Default,
    Nx: 'a + Default,
    Ex: 'a + Default
[src]

type Graph = G

Deprecated since 0.17.0:

use rs-graph-derive crate instead

type Attributes = GraphAttrs<'a, G, Gx, Nx, Ex>

Deprecated since 0.17.0:

use rs-graph-derive crate instead

Loading content...