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§
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
fn producer<IntoP>(&self, producer: IntoP) -> Self::ProducerIndex
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.