pub struct BcsrHypergraph<'view, W: BcsrWords> { /* private fields */ }Expand description
Borrowed bipartite compressed-sparse-row hypergraph view.
BcsrHypergraph borrows the eight section payloads supplied through
BcsrSections without copying or allocating. The single BcsrWords
parameter selects the word family — NativeWords
for host-order build-path views, LeWords for
little-endian snapshot-backed views. Construction validates the borrowed
slices according to the chosen BcsrValidation level. Once constructed,
every traversal is O(degree) in either direction.
§Performance
Construction is O(P_head + P_tail + P_outgoing + P_incoming) at
BcsrValidation::Layout. BcsrValidation::Strict adds an
O((P_head + P_tail) · log d) cross-direction walk where d is the
maximum vertex outgoing or incoming degree.
Implementations§
Source§impl<'view, VertexIndex, RelationIndex, IncidenceIndex> BcsrHypergraph<'view, LeWords<VertexIndex, RelationIndex, IncidenceIndex>>where
VertexIndex: BcsrSnapshotIndex,
RelationIndex: BcsrSnapshotIndex,
IncidenceIndex: BcsrSnapshotIndex,
impl<'view, VertexIndex, RelationIndex, IncidenceIndex> BcsrHypergraph<'view, LeWords<VertexIndex, RelationIndex, IncidenceIndex>>where
VertexIndex: BcsrSnapshotIndex,
RelationIndex: BcsrSnapshotIndex,
IncidenceIndex: BcsrSnapshotIndex,
Sourcepub fn from_snapshot(
snapshot: &Snapshot<'view>,
) -> Result<Self, BcsrSnapshotError>
pub fn from_snapshot( snapshot: &Snapshot<'view>, ) -> Result<Self, BcsrSnapshotError>
Opens a BcsrHypergraph backed by sections from snapshot.
§Errors
Returns BcsrSnapshotError when any required section is missing,
has the wrong width for the requested typed view, or fails
bipartite-CSR validation.
§Performance
O(s + P_head + P_tail + P_outgoing + P_incoming) for s snapshot
sections and the four payload counts.
Sourcepub fn from_snapshot_with(
snapshot: &Snapshot<'view>,
level: BcsrValidation,
) -> Result<Self, BcsrSnapshotError>
pub fn from_snapshot_with( snapshot: &Snapshot<'view>, level: BcsrValidation, ) -> Result<Self, BcsrSnapshotError>
Opens a BcsrHypergraph from snapshot at the requested validation level.
§Errors
Returns BcsrSnapshotError for missing or wrong-width sections, and
any crate::BcsrError surfaced through validation.
§Performance
As Self::from_snapshot at BcsrValidation::Layout; with
BcsrValidation::Strict, adds O((P_head + P_tail) * log d) for
the cross-direction walk.
Source§impl<'view, W: BcsrWords> BcsrHypergraph<'view, W>
impl<'view, W: BcsrWords> BcsrHypergraph<'view, W>
Sourcepub fn open(
sections: BcsrSections<'view, W::OffsetWord, W::VertexWord, W::RelationWord>,
) -> Result<Self, BcsrError>
pub fn open( sections: BcsrSections<'view, W::OffsetWord, W::VertexWord, W::RelationWord>, ) -> Result<Self, BcsrError>
Validates sections at BcsrValidation::Layout and returns a view.
§Errors
Returns BcsrError when any layout invariant fails. See
BcsrValidation::Layout for the full list.
§Performance
O(P_head + P_tail + P_outgoing + P_incoming).
Sourcepub fn open_with(
sections: BcsrSections<'view, W::OffsetWord, W::VertexWord, W::RelationWord>,
level: BcsrValidation,
) -> Result<Self, BcsrError>
pub fn open_with( sections: BcsrSections<'view, W::OffsetWord, W::VertexWord, W::RelationWord>, level: BcsrValidation, ) -> Result<Self, BcsrError>
Validates sections at the requested level and returns a view.
§Errors
Returns BcsrError when any invariant visible at level fails.
§Performance
O(P_head + P_tail + P_outgoing + P_incoming) at
BcsrValidation::Layout; adds O((P_head + P_tail) · log d) at
BcsrValidation::Strict.
Sourcepub const fn vertex_count(&self) -> usize
pub const fn vertex_count(&self) -> usize
Sourcepub const fn hyperedge_count(&self) -> usize
pub const fn hyperedge_count(&self) -> usize
Sourcepub const fn outgoing_incidence_count(&self) -> usize
pub const fn outgoing_incidence_count(&self) -> usize
Sourcepub const fn incoming_incidence_count(&self) -> usize
pub const fn incoming_incidence_count(&self) -> usize
Trait Implementations§
Source§impl<W: BcsrWords> Clone for BcsrHypergraph<'_, W>
impl<W: BcsrWords> Clone for BcsrHypergraph<'_, W>
Source§impl<W: BcsrWords> ContainsElement for BcsrHypergraph<'_, W>
impl<W: BcsrWords> ContainsElement for BcsrHypergraph<'_, W>
Source§fn contains_element(&self, element: BcsrVertexId<W::VertexIndex>) -> bool
fn contains_element(&self, element: BcsrVertexId<W::VertexIndex>) -> bool
element is valid and visible in this view. Read moreSource§impl<W: BcsrWords> ContainsIncidence for BcsrHypergraph<'_, W>
impl<W: BcsrWords> ContainsIncidence for BcsrHypergraph<'_, W>
Source§fn contains_incidence(
&self,
incidence: BcsrParticipantId<W::IncidenceIndex>,
) -> bool
fn contains_incidence( &self, incidence: BcsrParticipantId<W::IncidenceIndex>, ) -> bool
incidence is valid and visible in this view. Read moreSource§impl<W: BcsrWords> ContainsRelation for BcsrHypergraph<'_, W>
impl<W: BcsrWords> ContainsRelation for BcsrHypergraph<'_, W>
Source§fn contains_relation(&self, relation: BcsrHyperedgeId<W::RelationIndex>) -> bool
fn contains_relation(&self, relation: BcsrHyperedgeId<W::RelationIndex>) -> bool
relation is valid and visible in this view. Read moreimpl<W: BcsrWords> Copy for BcsrHypergraph<'_, W>
Source§impl<W: BcsrWords> Debug for BcsrHypergraph<'_, W>
impl<W: BcsrWords> Debug for BcsrHypergraph<'_, W>
Source§impl<W: BcsrWords> DenseElementIndex for BcsrHypergraph<'_, W>
impl<W: BcsrWords> DenseElementIndex for BcsrHypergraph<'_, W>
Source§fn element_bound(&self) -> usize
fn element_bound(&self) -> usize
Source§fn element_index(&self, element: BcsrVertexId<W::VertexIndex>) -> usize
fn element_index(&self, element: BcsrVertexId<W::VertexIndex>) -> usize
element in this view. Read moreSource§impl<W: BcsrWords> DenseIncidenceIndex for BcsrHypergraph<'_, W>
impl<W: BcsrWords> DenseIncidenceIndex for BcsrHypergraph<'_, W>
Source§fn incidence_bound(&self) -> usize
fn incidence_bound(&self) -> usize
Source§fn incidence_index(
&self,
incidence: BcsrParticipantId<W::IncidenceIndex>,
) -> usize
fn incidence_index( &self, incidence: BcsrParticipantId<W::IncidenceIndex>, ) -> usize
incidence in this view. Read moreSource§impl<W: BcsrWords> DenseRelationIndex for BcsrHypergraph<'_, W>
impl<W: BcsrWords> DenseRelationIndex for BcsrHypergraph<'_, W>
Source§fn relation_bound(&self) -> usize
fn relation_bound(&self) -> usize
Source§fn relation_index(&self, relation: BcsrHyperedgeId<W::RelationIndex>) -> usize
fn relation_index(&self, relation: BcsrHyperedgeId<W::RelationIndex>) -> usize
relation in this view. Read moreSource§impl<W: BcsrWords> DirectedHyperedgeIncidences for BcsrHypergraph<'_, W>
impl<W: BcsrWords> DirectedHyperedgeIncidences for BcsrHypergraph<'_, W>
Source§type SourceIncidences<'view> = BcsrParticipantSlice<<W as BcsrWords>::IncidenceIndex>
where
Self: 'view
type SourceIncidences<'view> = BcsrParticipantSlice<<W as BcsrWords>::IncidenceIndex> where Self: 'view
Source§type TargetIncidences<'view> = BcsrParticipantSlice<<W as BcsrWords>::IncidenceIndex>
where
Self: 'view
type TargetIncidences<'view> = BcsrParticipantSlice<<W as BcsrWords>::IncidenceIndex> where Self: 'view
Source§fn source_incidences(
&self,
hyperedge: BcsrHyperedgeId<W::RelationIndex>,
) -> Self::SourceIncidences<'_>
fn source_incidences( &self, hyperedge: BcsrHyperedgeId<W::RelationIndex>, ) -> Self::SourceIncidences<'_>
hyperedge.Source§fn target_incidences(
&self,
hyperedge: BcsrHyperedgeId<W::RelationIndex>,
) -> Self::TargetIncidences<'_>
fn target_incidences( &self, hyperedge: BcsrHyperedgeId<W::RelationIndex>, ) -> Self::TargetIncidences<'_>
hyperedge.Source§impl<W: BcsrWords> DirectedHyperedgeParticipants for BcsrHypergraph<'_, W>
impl<W: BcsrWords> DirectedHyperedgeParticipants for BcsrHypergraph<'_, W>
Source§type SourceParticipants<'view> = BcsrIdSlice<'view, <W as BcsrWords>::VertexWord, LocalId<VertexAxis, <<W as BcsrWords>::VertexWord as LayoutWord>::Index>>
where
Self: 'view
type SourceParticipants<'view> = BcsrIdSlice<'view, <W as BcsrWords>::VertexWord, LocalId<VertexAxis, <<W as BcsrWords>::VertexWord as LayoutWord>::Index>> where Self: 'view
Source§type TargetParticipants<'view> = BcsrIdSlice<'view, <W as BcsrWords>::VertexWord, LocalId<VertexAxis, <<W as BcsrWords>::VertexWord as LayoutWord>::Index>>
where
Self: 'view
type TargetParticipants<'view> = BcsrIdSlice<'view, <W as BcsrWords>::VertexWord, LocalId<VertexAxis, <<W as BcsrWords>::VertexWord as LayoutWord>::Index>> where Self: 'view
Source§fn source_participants(
&self,
hyperedge: BcsrHyperedgeId<W::RelationIndex>,
) -> Self::SourceParticipants<'_>
fn source_participants( &self, hyperedge: BcsrHyperedgeId<W::RelationIndex>, ) -> Self::SourceParticipants<'_>
hyperedge.Source§fn target_participants(
&self,
hyperedge: BcsrHyperedgeId<W::RelationIndex>,
) -> Self::TargetParticipants<'_>
fn target_participants( &self, hyperedge: BcsrHyperedgeId<W::RelationIndex>, ) -> Self::TargetParticipants<'_>
hyperedge.Source§impl<W: BcsrWords> DirectedVertexHyperedges for BcsrHypergraph<'_, W>
impl<W: BcsrWords> DirectedVertexHyperedges for BcsrHypergraph<'_, W>
Source§type OutgoingHyperedges<'view> = BcsrIdSlice<'view, <W as BcsrWords>::RelationWord, LocalId<HyperedgeAxis, <<W as BcsrWords>::RelationWord as LayoutWord>::Index>>
where
Self: 'view
type OutgoingHyperedges<'view> = BcsrIdSlice<'view, <W as BcsrWords>::RelationWord, LocalId<HyperedgeAxis, <<W as BcsrWords>::RelationWord as LayoutWord>::Index>> where Self: 'view
Source§type IncomingHyperedges<'view> = BcsrIdSlice<'view, <W as BcsrWords>::RelationWord, LocalId<HyperedgeAxis, <<W as BcsrWords>::RelationWord as LayoutWord>::Index>>
where
Self: 'view
type IncomingHyperedges<'view> = BcsrIdSlice<'view, <W as BcsrWords>::RelationWord, LocalId<HyperedgeAxis, <<W as BcsrWords>::RelationWord as LayoutWord>::Index>> where Self: 'view
Source§fn outgoing_hyperedges(
&self,
vertex: BcsrVertexId<W::VertexIndex>,
) -> Self::OutgoingHyperedges<'_>
fn outgoing_hyperedges( &self, vertex: BcsrVertexId<W::VertexIndex>, ) -> Self::OutgoingHyperedges<'_>
vertex participates on the source side.Source§fn incoming_hyperedges(
&self,
vertex: BcsrVertexId<W::VertexIndex>,
) -> Self::IncomingHyperedges<'_>
fn incoming_hyperedges( &self, vertex: BcsrVertexId<W::VertexIndex>, ) -> Self::IncomingHyperedges<'_>
vertex participates on the target side.Source§impl<W: BcsrWords> ElementIncidenceCount for BcsrHypergraph<'_, W>
impl<W: BcsrWords> ElementIncidenceCount for BcsrHypergraph<'_, W>
Source§fn element_incidence_count(
&self,
element: BcsrVertexId<W::VertexIndex>,
) -> usize
fn element_incidence_count( &self, element: BcsrVertexId<W::VertexIndex>, ) -> usize
element. Read moreSource§impl<W: BcsrWords> ElementIncidences for BcsrHypergraph<'_, W>
impl<W: BcsrWords> ElementIncidences for BcsrHypergraph<'_, W>
Source§type Incidences<'view> = BcsrElementIncidences<'view, <W as BcsrWords>::OffsetWord, <W as BcsrWords>::VertexWord, <W as BcsrWords>::RelationWord>
where
Self: 'view
type Incidences<'view> = BcsrElementIncidences<'view, <W as BcsrWords>::OffsetWord, <W as BcsrWords>::VertexWord, <W as BcsrWords>::RelationWord> where Self: 'view
Source§fn element_incidences(
&self,
element: BcsrVertexId<W::VertexIndex>,
) -> Self::Incidences<'_>
fn element_incidences( &self, element: BcsrVertexId<W::VertexIndex>, ) -> Self::Incidences<'_>
element. Read moreSource§impl<W: BcsrWords> ElementPredecessors for BcsrHypergraph<'_, W>
impl<W: BcsrWords> ElementPredecessors for BcsrHypergraph<'_, W>
Source§type Predecessors<'view> = BcsrNeighborVertices<'view, <W as BcsrWords>::RelationWord, <W as BcsrWords>::OffsetWord, <W as BcsrWords>::VertexWord>
where
Self: 'view
type Predecessors<'view> = BcsrNeighborVertices<'view, <W as BcsrWords>::RelationWord, <W as BcsrWords>::OffsetWord, <W as BcsrWords>::VertexWord> where Self: 'view
Source§fn element_predecessors(
&self,
vertex: BcsrVertexId<W::VertexIndex>,
) -> Self::Predecessors<'_>
fn element_predecessors( &self, vertex: BcsrVertexId<W::VertexIndex>, ) -> Self::Predecessors<'_>
element through outgoing connections. Read moreSource§impl<W: BcsrWords> ElementSuccessors for BcsrHypergraph<'_, W>
impl<W: BcsrWords> ElementSuccessors for BcsrHypergraph<'_, W>
Source§type Successors<'view> = BcsrNeighborVertices<'view, <W as BcsrWords>::RelationWord, <W as BcsrWords>::OffsetWord, <W as BcsrWords>::VertexWord>
where
Self: 'view
type Successors<'view> = BcsrNeighborVertices<'view, <W as BcsrWords>::RelationWord, <W as BcsrWords>::OffsetWord, <W as BcsrWords>::VertexWord> where Self: 'view
Source§fn element_successors(
&self,
vertex: BcsrVertexId<W::VertexIndex>,
) -> Self::Successors<'_>
fn element_successors( &self, vertex: BcsrVertexId<W::VertexIndex>, ) -> Self::Successors<'_>
element. Read moreSource§impl<W: BcsrWords> HyperedgeParticipants for BcsrHypergraph<'_, W>
impl<W: BcsrWords> HyperedgeParticipants for BcsrHypergraph<'_, W>
Source§type Participants<'view> = Chain<BcsrIdSlice<'view, <W as BcsrWords>::VertexWord, LocalId<VertexAxis, <<W as BcsrWords>::VertexWord as LayoutWord>::Index>>, BcsrIdSlice<'view, <W as BcsrWords>::VertexWord, LocalId<VertexAxis, <<W as BcsrWords>::VertexWord as LayoutWord>::Index>>>
where
Self: 'view
type Participants<'view> = Chain<BcsrIdSlice<'view, <W as BcsrWords>::VertexWord, LocalId<VertexAxis, <<W as BcsrWords>::VertexWord as LayoutWord>::Index>>, BcsrIdSlice<'view, <W as BcsrWords>::VertexWord, LocalId<VertexAxis, <<W as BcsrWords>::VertexWord as LayoutWord>::Index>>> where Self: 'view
Source§fn hyperedge_participants(
&self,
hyperedge: BcsrHyperedgeId<W::RelationIndex>,
) -> Self::Participants<'_>
fn hyperedge_participants( &self, hyperedge: BcsrHyperedgeId<W::RelationIndex>, ) -> Self::Participants<'_>
hyperedge.Source§impl<W: BcsrWords> IncidenceBase for BcsrHypergraph<'_, W>
impl<W: BcsrWords> IncidenceBase for BcsrHypergraph<'_, W>
Source§type IncidenceId = LocalId<IncidenceAxis, <W as BcsrWords>::IncidenceIndex>
type IncidenceId = LocalId<IncidenceAxis, <W as BcsrWords>::IncidenceIndex>
Source§impl<W: BcsrWords> IncidenceCounts for BcsrHypergraph<'_, W>
impl<W: BcsrWords> IncidenceCounts for BcsrHypergraph<'_, W>
Source§fn incidence_count(&self) -> usize
fn incidence_count(&self) -> usize
Source§impl<W: BcsrWords> IncidenceElement for BcsrHypergraph<'_, W>
impl<W: BcsrWords> IncidenceElement for BcsrHypergraph<'_, W>
Source§fn incidence_element(
&self,
incidence: BcsrParticipantId<W::IncidenceIndex>,
) -> BcsrVertexId<W::VertexIndex>
fn incidence_element( &self, incidence: BcsrParticipantId<W::IncidenceIndex>, ) -> BcsrVertexId<W::VertexIndex>
incidence. Read moreSource§impl<W: BcsrWords> IncidenceRelation for BcsrHypergraph<'_, W>
impl<W: BcsrWords> IncidenceRelation for BcsrHypergraph<'_, W>
Source§fn incidence_relation(
&self,
incidence: BcsrParticipantId<W::IncidenceIndex>,
) -> BcsrHyperedgeId<W::RelationIndex>
fn incidence_relation( &self, incidence: BcsrParticipantId<W::IncidenceIndex>, ) -> BcsrHyperedgeId<W::RelationIndex>
incidence. Read moreSource§impl<W: BcsrWords> IncidenceRole for BcsrHypergraph<'_, W>
impl<W: BcsrWords> IncidenceRole for BcsrHypergraph<'_, W>
Source§fn incidence_role(
&self,
incidence: BcsrParticipantId<W::IncidenceIndex>,
) -> BcsrRole
fn incidence_role( &self, incidence: BcsrParticipantId<W::IncidenceIndex>, ) -> BcsrRole
incidence. Read moreSource§impl<W: BcsrWords> IncidentHyperedges for BcsrHypergraph<'_, W>
impl<W: BcsrWords> IncidentHyperedges for BcsrHypergraph<'_, W>
Source§type IncidentHyperedges<'view> = Chain<BcsrIdSlice<'view, <W as BcsrWords>::RelationWord, LocalId<HyperedgeAxis, <<W as BcsrWords>::RelationWord as LayoutWord>::Index>>, BcsrIdSlice<'view, <W as BcsrWords>::RelationWord, LocalId<HyperedgeAxis, <<W as BcsrWords>::RelationWord as LayoutWord>::Index>>>
where
Self: 'view
type IncidentHyperedges<'view> = Chain<BcsrIdSlice<'view, <W as BcsrWords>::RelationWord, LocalId<HyperedgeAxis, <<W as BcsrWords>::RelationWord as LayoutWord>::Index>>, BcsrIdSlice<'view, <W as BcsrWords>::RelationWord, LocalId<HyperedgeAxis, <<W as BcsrWords>::RelationWord as LayoutWord>::Index>>> where Self: 'view
Source§fn incident_hyperedges(
&self,
vertex: BcsrVertexId<W::VertexIndex>,
) -> Self::IncidentHyperedges<'_>
fn incident_hyperedges( &self, vertex: BcsrVertexId<W::VertexIndex>, ) -> Self::IncidentHyperedges<'_>
vertex.Source§impl<W: BcsrWords> RelationIncidenceCount for BcsrHypergraph<'_, W>
impl<W: BcsrWords> RelationIncidenceCount for BcsrHypergraph<'_, W>
Source§fn relation_incidence_count(
&self,
relation: BcsrHyperedgeId<W::RelationIndex>,
) -> usize
fn relation_incidence_count( &self, relation: BcsrHyperedgeId<W::RelationIndex>, ) -> usize
relation. Read moreSource§impl<W: BcsrWords> RelationIncidences for BcsrHypergraph<'_, W>
impl<W: BcsrWords> RelationIncidences for BcsrHypergraph<'_, W>
Source§type Incidences<'view> = Chain<BcsrParticipantSlice<<W as BcsrWords>::IncidenceIndex>, BcsrParticipantSlice<<W as BcsrWords>::IncidenceIndex>>
where
Self: 'view
type Incidences<'view> = Chain<BcsrParticipantSlice<<W as BcsrWords>::IncidenceIndex>, BcsrParticipantSlice<<W as BcsrWords>::IncidenceIndex>> where Self: 'view
Source§fn relation_incidences(
&self,
relation: BcsrHyperedgeId<W::RelationIndex>,
) -> Self::Incidences<'_>
fn relation_incidences( &self, relation: BcsrHyperedgeId<W::RelationIndex>, ) -> Self::Incidences<'_>
relation. Read moreSource§impl<W: BcsrWords> TopologyBase for BcsrHypergraph<'_, W>
impl<W: BcsrWords> TopologyBase for BcsrHypergraph<'_, W>
Source§type ElementId = LocalId<VertexAxis, <W as BcsrWords>::VertexIndex>
type ElementId = LocalId<VertexAxis, <W as BcsrWords>::VertexIndex>
Source§type RelationId = LocalId<HyperedgeAxis, <W as BcsrWords>::RelationIndex>
type RelationId = LocalId<HyperedgeAxis, <W as BcsrWords>::RelationIndex>
Source§impl<W: BcsrWords> TopologyCounts for BcsrHypergraph<'_, W>
impl<W: BcsrWords> TopologyCounts for BcsrHypergraph<'_, W>
Source§fn element_count(&self) -> usize
fn element_count(&self) -> usize
Source§fn relation_count(&self) -> usize
fn relation_count(&self) -> usize
Auto Trait Implementations§
impl<'view, W> Freeze for BcsrHypergraph<'view, W>
impl<'view, W> RefUnwindSafe for BcsrHypergraph<'view, W>where
<W as BcsrWords>::OffsetWord: RefUnwindSafe,
<W as BcsrWords>::VertexWord: RefUnwindSafe,
<W as BcsrWords>::RelationWord: RefUnwindSafe,
impl<'view, W> Send for BcsrHypergraph<'view, W>where
<W as BcsrWords>::OffsetWord: Sync,
<W as BcsrWords>::VertexWord: Sync,
<W as BcsrWords>::RelationWord: Sync,
impl<'view, W> Sync for BcsrHypergraph<'view, W>where
<W as BcsrWords>::OffsetWord: Sync,
<W as BcsrWords>::VertexWord: Sync,
<W as BcsrWords>::RelationWord: Sync,
impl<'view, W> Unpin for BcsrHypergraph<'view, W>
impl<'view, W> UnsafeUnpin for BcsrHypergraph<'view, W>
impl<'view, W> UnwindSafe for BcsrHypergraph<'view, W>where
<W as BcsrWords>::OffsetWord: RefUnwindSafe,
<W as BcsrWords>::VertexWord: RefUnwindSafe,
<W as BcsrWords>::RelationWord: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ContainsHyperedge for Twhere
T: ContainsRelation,
impl<T> ContainsHyperedge for Twhere
T: ContainsRelation,
Source§fn contains_hyperedge(&self, hyperedge: Self::RelationId) -> bool
fn contains_hyperedge(&self, hyperedge: Self::RelationId) -> bool
hyperedge is valid and visible in this hypergraph view.Source§impl<T> ContainsParticipant for Twhere
T: ContainsIncidence,
impl<T> ContainsParticipant for Twhere
T: ContainsIncidence,
Source§fn contains_participant(&self, participant: Self::IncidenceId) -> bool
fn contains_participant(&self, participant: Self::IncidenceId) -> bool
participant is valid and visible in this hypergraph view.Source§impl<T> ContainsVertex for Twhere
T: ContainsElement,
impl<T> ContainsVertex for Twhere
T: ContainsElement,
Source§fn contains_vertex(&self, vertex: Self::ElementId) -> bool
fn contains_vertex(&self, vertex: Self::ElementId) -> bool
vertex is valid and visible in this hypergraph view.Source§impl<T> DenseHyperedgeIndex for Twhere
T: DenseRelationIndex,
impl<T> DenseHyperedgeIndex for Twhere
T: DenseRelationIndex,
Source§fn hyperedge_bound(&self) -> usize
fn hyperedge_bound(&self) -> usize
Source§fn hyperedge_index(&self, hyperedge: Self::RelationId) -> usize
fn hyperedge_index(&self, hyperedge: Self::RelationId) -> usize
hyperedge in this view.Source§impl<T> DenseParticipantIndex for Twhere
T: DenseIncidenceIndex,
impl<T> DenseParticipantIndex for Twhere
T: DenseIncidenceIndex,
Source§fn participant_bound(&self) -> usize
fn participant_bound(&self) -> usize
Source§fn participant_index(&self, participant: Self::IncidenceId) -> usize
fn participant_index(&self, participant: Self::IncidenceId) -> usize
participant in this view.Source§impl<T> DenseVertexIndex for Twhere
T: DenseElementIndex,
impl<T> DenseVertexIndex for Twhere
T: DenseElementIndex,
Source§fn vertex_bound(&self) -> usize
fn vertex_bound(&self) -> usize
Source§fn vertex_index(&self, vertex: Self::ElementId) -> usize
fn vertex_index(&self, vertex: Self::ElementId) -> usize
vertex in this view.impl<T> DirectedHypergraph for T
Source§impl<T> DirectedVertexPredecessors for Twhere
T: ElementPredecessors,
impl<T> DirectedVertexPredecessors for Twhere
T: ElementPredecessors,
Source§type VertexPredecessors<'view> = <T as ElementPredecessors>::Predecessors<'view>
where
T: 'view
type VertexPredecessors<'view> = <T as ElementPredecessors>::Predecessors<'view> where T: 'view
Source§fn predecessor_vertices(
&self,
vertex: <T as TopologyBase>::ElementId,
) -> <T as DirectedVertexPredecessors>::VertexPredecessors<'_>
fn predecessor_vertices( &self, vertex: <T as TopologyBase>::ElementId, ) -> <T as DirectedVertexPredecessors>::VertexPredecessors<'_>
vertex.Source§impl<T> DirectedVertexSuccessors for Twhere
T: ElementSuccessors,
impl<T> DirectedVertexSuccessors for Twhere
T: ElementSuccessors,
Source§type VertexSuccessors<'view> = <T as ElementSuccessors>::Successors<'view>
where
T: 'view
type VertexSuccessors<'view> = <T as ElementSuccessors>::Successors<'view> where T: 'view
Source§fn successor_vertices(
&self,
vertex: <T as TopologyBase>::ElementId,
) -> <T as DirectedVertexSuccessors>::VertexSuccessors<'_>
fn successor_vertices( &self, vertex: <T as TopologyBase>::ElementId, ) -> <T as DirectedVertexSuccessors>::VertexSuccessors<'_>
vertex.Source§impl<T> HyperedgeIncidences for Twhere
T: RelationIncidences,
impl<T> HyperedgeIncidences for Twhere
T: RelationIncidences,
Source§type ParticipantIds<'view> = <T as RelationIncidences>::Incidences<'view>
where
T: 'view
type ParticipantIds<'view> = <T as RelationIncidences>::Incidences<'view> where T: 'view
Source§fn hyperedge_incidences(
&self,
hyperedge: <T as TopologyBase>::RelationId,
) -> <T as HyperedgeIncidences>::ParticipantIds<'_>
fn hyperedge_incidences( &self, hyperedge: <T as TopologyBase>::RelationId, ) -> <T as HyperedgeIncidences>::ParticipantIds<'_>
hyperedge.Source§impl<T> HyperedgeParticipantCount for Twhere
T: RelationIncidenceCount,
impl<T> HyperedgeParticipantCount for Twhere
T: RelationIncidenceCount,
Source§fn hyperedge_participant_count(&self, hyperedge: Self::RelationId) -> usize
fn hyperedge_participant_count(&self, hyperedge: Self::RelationId) -> usize
hyperedge.impl<T> Hypergraph for Twhere
T: HyperedgeParticipants + IncidentHyperedges,
impl<T> HypergraphBase for Twhere
T: TopologyBase,
Source§impl<T> HypergraphCounts for Twhere
T: TopologyCounts,
impl<T> HypergraphCounts for Twhere
T: TopologyCounts,
Source§fn vertex_count(&self) -> usize
fn vertex_count(&self) -> usize
Source§fn hyperedge_count(&self) -> usize
fn hyperedge_count(&self) -> usize
impl<T> IncidenceView for T
Source§impl<T> IncidentHyperedgeCount for Twhere
T: ElementIncidenceCount,
impl<T> IncidentHyperedgeCount for Twhere
T: ElementIncidenceCount,
Source§fn incident_hyperedge_count(&self, vertex: Self::ElementId) -> usize
fn incident_hyperedge_count(&self, vertex: Self::ElementId) -> usize
vertex.impl<T> ParticipantBase for Twhere
T: IncidenceBase,
Source§impl<T> ParticipantCounts for Twhere
T: IncidenceCounts,
impl<T> ParticipantCounts for Twhere
T: IncidenceCounts,
Source§fn participant_count(&self) -> usize
fn participant_count(&self) -> usize
Source§impl<T> ParticipantHyperedge for Twhere
T: IncidenceRelation,
impl<T> ParticipantHyperedge for Twhere
T: IncidenceRelation,
Source§fn participant_hyperedge(
&self,
participant: Self::IncidenceId,
) -> Self::RelationId
fn participant_hyperedge( &self, participant: Self::IncidenceId, ) -> Self::RelationId
participant.Source§impl<T> ParticipantRoleOf for Twhere
T: IncidenceRole,
impl<T> ParticipantRoleOf for Twhere
T: IncidenceRole,
Source§fn participant_role_of(&self, participant: Self::IncidenceId) -> Self::Role
fn participant_role_of(&self, participant: Self::IncidenceId) -> Self::Role
participant.Source§impl<T> ParticipantVertex for Twhere
T: IncidenceElement,
impl<T> ParticipantVertex for Twhere
T: IncidenceElement,
Source§fn participant_vertex(&self, participant: Self::IncidenceId) -> Self::ElementId
fn participant_vertex(&self, participant: Self::IncidenceId) -> Self::ElementId
participant.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> VertexIncidences for Twhere
T: ElementIncidences,
impl<T> VertexIncidences for Twhere
T: ElementIncidences,
Source§type ParticipantIds<'view> = <T as ElementIncidences>::Incidences<'view>
where
T: 'view
type ParticipantIds<'view> = <T as ElementIncidences>::Incidences<'view> where T: 'view
Source§fn vertex_incidences(
&self,
vertex: <T as TopologyBase>::ElementId,
) -> <T as VertexIncidences>::ParticipantIds<'_>
fn vertex_incidences( &self, vertex: <T as TopologyBase>::ElementId, ) -> <T as VertexIncidences>::ParticipantIds<'_>
vertex.