pub trait ContextNetworkExt: ContextBase + ContextRandomExt {
// Provided methods
fn add_edge<E: Entity, ET: EdgeType<E>>(
&mut self,
entity_id: EntityId<E>,
neighbor: EntityId<E>,
weight: f32,
inner: ET,
) -> Result<(), IxaError> { ... }
fn add_edge_bidi<E: Entity, ET: EdgeType<E>>(
&mut self,
entity1: EntityId<E>,
entity2: EntityId<E>,
weight: f32,
inner: ET,
) -> Result<(), IxaError> { ... }
fn remove_edge<E: Entity, ET: EdgeType<E>>(
&mut self,
entity_id: EntityId<E>,
neighbor: EntityId<E>,
) -> Option<Edge<E, ET>> { ... }
fn get_edge<E: Entity, ET: EdgeType<E>>(
&self,
entity_id: EntityId<E>,
neighbor: EntityId<E>,
) -> Option<&Edge<E, ET>> { ... }
fn get_edges<E: Entity, ET: EdgeType<E>>(
&self,
entity_id: EntityId<E>,
) -> Vec<Edge<E, ET>> { ... }
fn get_matching_edges<E: Entity, ET: EdgeType<E>>(
&self,
entity_id: EntityId<E>,
filter: impl Fn(&Self, &Edge<E, ET>) -> bool,
) -> Vec<Edge<E, ET>> { ... }
fn find_entities_by_degree<E: Entity, ET: EdgeType<E>>(
&self,
degree: usize,
) -> Vec<EntityId<E>> { ... }
fn select_random_edge<E: Entity, ET: EdgeType<E>, R: RngId + 'static>(
&self,
rng_id: R,
entity_id: EntityId<E>,
) -> Result<Edge<E, ET>, IxaError>
where R::RngType: Rng { ... }
}Provided Methods§
Sourcefn add_edge<E: Entity, ET: EdgeType<E>>(
&mut self,
entity_id: EntityId<E>,
neighbor: EntityId<E>,
weight: f32,
inner: ET,
) -> Result<(), IxaError>
fn add_edge<E: Entity, ET: EdgeType<E>>( &mut self, entity_id: EntityId<E>, neighbor: EntityId<E>, weight: f32, inner: ET, ) -> Result<(), IxaError>
Sourcefn add_edge_bidi<E: Entity, ET: EdgeType<E>>(
&mut self,
entity1: EntityId<E>,
entity2: EntityId<E>,
weight: f32,
inner: ET,
) -> Result<(), IxaError>
fn add_edge_bidi<E: Entity, ET: EdgeType<E>>( &mut self, entity1: EntityId<E>, entity2: EntityId<E>, weight: f32, inner: ET, ) -> Result<(), IxaError>
Sourcefn remove_edge<E: Entity, ET: EdgeType<E>>(
&mut self,
entity_id: EntityId<E>,
neighbor: EntityId<E>,
) -> Option<Edge<E, ET>>
fn remove_edge<E: Entity, ET: EdgeType<E>>( &mut self, entity_id: EntityId<E>, neighbor: EntityId<E>, ) -> Option<Edge<E, ET>>
Remove the edge of type ET from entity_id to neighbor and return it, or None if
the edge does not exist.
Sourcefn get_edge<E: Entity, ET: EdgeType<E>>(
&self,
entity_id: EntityId<E>,
neighbor: EntityId<E>,
) -> Option<&Edge<E, ET>>
fn get_edge<E: Entity, ET: EdgeType<E>>( &self, entity_id: EntityId<E>, neighbor: EntityId<E>, ) -> Option<&Edge<E, ET>>
Get an edge of type ET from entity_id to neighbor if one exists.
Sourcefn get_edges<E: Entity, ET: EdgeType<E>>(
&self,
entity_id: EntityId<E>,
) -> Vec<Edge<E, ET>>
fn get_edges<E: Entity, ET: EdgeType<E>>( &self, entity_id: EntityId<E>, ) -> Vec<Edge<E, ET>>
Get all outgoing edges of type ET from entity_id.
Sourcefn get_matching_edges<E: Entity, ET: EdgeType<E>>(
&self,
entity_id: EntityId<E>,
filter: impl Fn(&Self, &Edge<E, ET>) -> bool,
) -> Vec<Edge<E, ET>>
fn get_matching_edges<E: Entity, ET: EdgeType<E>>( &self, entity_id: EntityId<E>, filter: impl Fn(&Self, &Edge<E, ET>) -> bool, ) -> Vec<Edge<E, ET>>
Get all edges of type ET from entity_id that match the predicate provided in filter.
Note that because filter has access to both the edge (which contains neighbor) and
the calling context (self), it is possible to filter on properties of the neighbor.
Sourcefn find_entities_by_degree<E: Entity, ET: EdgeType<E>>(
&self,
degree: usize,
) -> Vec<EntityId<E>>
fn find_entities_by_degree<E: Entity, ET: EdgeType<E>>( &self, degree: usize, ) -> Vec<EntityId<E>>
Find all entities who have an edge of type ET and degree degree.
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.