Trait NodeIndex

Source
pub trait NodeIndex:
    Copy
    + Hash
    + Eq {
    type ConsumerIndex: ConsumerIndex<NodeIndex = Self, Consumer = Self::Consumer>;
    type ProducerIndex: ProducerIndex<NodeIndex = Self, Producer = Self::Producer>;

    // Required methods
    fn consumer<IntoC>(&self, consumer: IntoC) -> Self::ConsumerIndex
       where IntoC: Into<Self::Consumer>;
    fn producer<IntoP>(&self, producer: IntoP) -> Self::ProducerIndex
       where IntoP: Into<Self::Producer>;
}
Expand description

An index serving as a reference to a node stored in a graph.

It can be used as a reference to read or delete an existing node. It can be used to access a consumer or producer index of the given node too and then be used to lookup, add or remove edges in the graph.

§Example

let generator = graph.add_node(Generator(1));
let echo = graph.add_node(Echo::default());

graph.add_edge(
    generator.producer(GeneratorProducer),
    echo.consumer(EchoConsumer),
);

graph.remove_node(&echo);

Required Associated Types§

Source

type ConsumerIndex: ConsumerIndex<NodeIndex = Self, Consumer = Self::Consumer>

Source

type ProducerIndex: ProducerIndex<NodeIndex = Self, Producer = Self::Producer>

Required Methods§

Source

fn consumer<IntoC>(&self, consumer: IntoC) -> Self::ConsumerIndex
where IntoC: Into<Self::Consumer>,

Source

fn producer<IntoP>(&self, producer: IntoP) -> Self::ProducerIndex
where IntoP: Into<Self::Producer>,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§