pub trait GraphEdgesNominalInterface: GraphNodesNominalInterface {
type EdgeHandle: EdgeBasicInterface;
// Required methods
fn edge<Id>(&self, id: Id) -> &Self::EdgeHandle
where Id: Into<<Self::EdgeHandle as HasId>::Id>;
fn out_edges_ids<'a, 'b, IntoId>(
&'a self,
node_id: IntoId,
) -> Box<dyn Iterator<Item = <Self::EdgeHandle as HasId>::Id> + 'b>
where 'a: 'b,
IntoId: Into<<Self::NodeHandle as HasId>::Id>;
// Provided methods
fn EdgeId<Id>(id: Id) -> <Self::EdgeHandle as HasId>::Id
where Id: Into<<Self::EdgeHandle as HasId>::Id> { ... }
fn edge_id<Id>(&self, id: Id) -> <Self::EdgeHandle as HasId>::Id
where Id: Into<<Self::EdgeHandle as HasId>::Id> { ... }
fn out_edges<'a, 'b, IntoId>(
&'a self,
node_id: IntoId,
) -> Box<dyn Iterator<Item = (<Self::EdgeHandle as HasId>::Id, &'a Self::EdgeHandle)> + 'b>
where 'a: 'b,
IntoId: Into<<Self::NodeHandle as HasId>::Id> { ... }
}Expand description
Graph which know how to iterate neighbourhood of a node and capable to convert id of a node into a node.
Required Associated Types§
Sourcetype EdgeHandle: EdgeBasicInterface
type EdgeHandle: EdgeBasicInterface
Handle of an edge - entity representing an edge or the edge itself. It’s not always possible to operate an edge directly, for example it it has to be wrapped by cell ref. For that use NodeHandle. Otherwise EdgeHandle could be &Node.
Required Methods§
Sourcefn edge<Id>(&self, id: Id) -> &Self::EdgeHandle
fn edge<Id>(&self, id: Id) -> &Self::EdgeHandle
Get edge with id.
Sourcefn out_edges_ids<'a, 'b, IntoId>(
&'a self,
node_id: IntoId,
) -> Box<dyn Iterator<Item = <Self::EdgeHandle as HasId>::Id> + 'b>
fn out_edges_ids<'a, 'b, IntoId>( &'a self, node_id: IntoId, ) -> Box<dyn Iterator<Item = <Self::EdgeHandle as HasId>::Id> + 'b>
Iterate over output edges of the node. Callback gets ids of nodes in neighbourhood of a picked node.
Provided Methods§
Sourcefn EdgeId<Id>(id: Id) -> <Self::EdgeHandle as HasId>::Id
fn EdgeId<Id>(id: Id) -> <Self::EdgeHandle as HasId>::Id
Convert argument into edge id.
Sourcefn edge_id<Id>(&self, id: Id) -> <Self::EdgeHandle as HasId>::Id
fn edge_id<Id>(&self, id: Id) -> <Self::EdgeHandle as HasId>::Id
Convert argument into edge id.
Sourcefn out_edges<'a, 'b, IntoId>(
&'a self,
node_id: IntoId,
) -> Box<dyn Iterator<Item = (<Self::EdgeHandle as HasId>::Id, &'a Self::EdgeHandle)> + 'b>
fn out_edges<'a, 'b, IntoId>( &'a self, node_id: IntoId, ) -> Box<dyn Iterator<Item = (<Self::EdgeHandle as HasId>::Id, &'a Self::EdgeHandle)> + 'b>
Iterate over output edges of the node. Callback gets ids and references of edges in neighbourhood of a picked node.
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.