pub struct BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>where
OffsetWord: BcsrWord<Index = IncidenceIndex>,
VertexWord: BcsrWord<Index = VertexIndex>,
RelationWord: BcsrWord<Index = RelationIndex>,
VertexIndex: BcsrIndex,
RelationIndex: BcsrIndex,
IncidenceIndex: BcsrIndex,{ /* private fields */ }Expand description
Borrowed bipartite compressed-sparse-row hypergraph view.
BcsrHypergraph borrows the eight section payloads supplied through
BcsrSections without copying or allocating. 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, VertexIndex, RelationIndex, IncidenceIndex, <IncidenceIndex as BcsrSnapshotIndex>::LittleEndianWord, <VertexIndex as BcsrSnapshotIndex>::LittleEndianWord, <RelationIndex as BcsrSnapshotIndex>::LittleEndianWord>where
VertexIndex: BcsrSnapshotIndex,
RelationIndex: BcsrSnapshotIndex,
IncidenceIndex: BcsrSnapshotIndex,
impl<'view, VertexIndex, RelationIndex, IncidenceIndex> BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, <IncidenceIndex as BcsrSnapshotIndex>::LittleEndianWord, <VertexIndex as BcsrSnapshotIndex>::LittleEndianWord, <RelationIndex as BcsrSnapshotIndex>::LittleEndianWord>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, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
Sourcepub fn open(
sections: BcsrSections<'view, OffsetWord, VertexWord, RelationWord>,
) -> Result<Self, BcsrError>
pub fn open( sections: BcsrSections<'view, OffsetWord, VertexWord, 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, OffsetWord, VertexWord, RelationWord>,
level: BcsrValidation,
) -> Result<Self, BcsrError>
pub fn open_with( sections: BcsrSections<'view, OffsetWord, VertexWord, 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<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Clone for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Clone for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
Source§fn clone(
&self,
) -> BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
fn clone( &self, ) -> BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<V, R, I, O, VW, RW> ContainsElement for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> ContainsElement for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn contains_element(&self, element: BcsrVertexId<V>) -> bool
fn contains_element(&self, element: BcsrVertexId<V>) -> bool
element is valid and visible in this view. Read moreSource§impl<V, R, I, O, VW, RW> ContainsIncidence for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> ContainsIncidence for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn contains_incidence(&self, incidence: BcsrParticipantId<I>) -> bool
fn contains_incidence(&self, incidence: BcsrParticipantId<I>) -> bool
incidence is valid and visible in this view. Read moreSource§impl<V, R, I, O, VW, RW> ContainsRelation for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> ContainsRelation for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn contains_relation(&self, relation: BcsrHyperedgeId<R>) -> bool
fn contains_relation(&self, relation: BcsrHyperedgeId<R>) -> bool
relation is valid and visible in this view. Read moreSource§impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Debug for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Debug for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
Source§impl<V, R, I, O, VW, RW> DirectedHyperedgeIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> DirectedHyperedgeIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type SourceIncidences<'view> = BcsrParticipantSlice<I>
where
Self: 'view
type SourceIncidences<'view> = BcsrParticipantSlice<I> where Self: 'view
Source§type TargetIncidences<'view> = BcsrParticipantSlice<I>
where
Self: 'view
type TargetIncidences<'view> = BcsrParticipantSlice<I> where Self: 'view
Source§fn source_incidences(
&self,
hyperedge: BcsrHyperedgeId<R>,
) -> Self::SourceIncidences<'_>
fn source_incidences( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::SourceIncidences<'_>
hyperedge.Source§fn target_incidences(
&self,
hyperedge: BcsrHyperedgeId<R>,
) -> Self::TargetIncidences<'_>
fn target_incidences( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::TargetIncidences<'_>
hyperedge.Source§impl<V, R, I, O, VW, RW> DirectedHyperedgeParticipants for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> DirectedHyperedgeParticipants for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type SourceParticipants<'view> = BcsrIdSlice<'view, VW, BcsrVertexId<<VW as BcsrWord>::Index>>
where
Self: 'view
type SourceParticipants<'view> = BcsrIdSlice<'view, VW, BcsrVertexId<<VW as BcsrWord>::Index>> where Self: 'view
Source§type TargetParticipants<'view> = BcsrIdSlice<'view, VW, BcsrVertexId<<VW as BcsrWord>::Index>>
where
Self: 'view
type TargetParticipants<'view> = BcsrIdSlice<'view, VW, BcsrVertexId<<VW as BcsrWord>::Index>> where Self: 'view
Source§fn source_participants(
&self,
hyperedge: BcsrHyperedgeId<R>,
) -> Self::SourceParticipants<'_>
fn source_participants( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::SourceParticipants<'_>
hyperedge.Source§fn target_participants(
&self,
hyperedge: BcsrHyperedgeId<R>,
) -> Self::TargetParticipants<'_>
fn target_participants( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::TargetParticipants<'_>
hyperedge.Source§impl<V, R, I, O, VW, RW> DirectedVertexHyperedges for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> DirectedVertexHyperedges for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type OutgoingHyperedges<'view> = BcsrIdSlice<'view, RW, BcsrHyperedgeId<<RW as BcsrWord>::Index>>
where
Self: 'view
type OutgoingHyperedges<'view> = BcsrIdSlice<'view, RW, BcsrHyperedgeId<<RW as BcsrWord>::Index>> where Self: 'view
Source§type IncomingHyperedges<'view> = BcsrIdSlice<'view, RW, BcsrHyperedgeId<<RW as BcsrWord>::Index>>
where
Self: 'view
type IncomingHyperedges<'view> = BcsrIdSlice<'view, RW, BcsrHyperedgeId<<RW as BcsrWord>::Index>> where Self: 'view
Source§fn outgoing_hyperedges(
&self,
vertex: BcsrVertexId<V>,
) -> Self::OutgoingHyperedges<'_>
fn outgoing_hyperedges( &self, vertex: BcsrVertexId<V>, ) -> Self::OutgoingHyperedges<'_>
vertex participates on the source side.Source§fn incoming_hyperedges(
&self,
vertex: BcsrVertexId<V>,
) -> Self::IncomingHyperedges<'_>
fn incoming_hyperedges( &self, vertex: BcsrVertexId<V>, ) -> Self::IncomingHyperedges<'_>
vertex participates on the target side.Source§impl<V, R, I, O, VW, RW> ElementIncidenceCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> ElementIncidenceCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn element_incidence_count(&self, element: BcsrVertexId<V>) -> usize
fn element_incidence_count(&self, element: BcsrVertexId<V>) -> usize
element. Read moreSource§impl<V, R, I, O, VW, RW> ElementIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> ElementIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type Incidences<'view> = BcsrElementIncidences<'view, O, VW, RW>
where
Self: 'view
type Incidences<'view> = BcsrElementIncidences<'view, O, VW, RW> where Self: 'view
Source§fn element_incidences(&self, element: BcsrVertexId<V>) -> Self::Incidences<'_>
fn element_incidences(&self, element: BcsrVertexId<V>) -> Self::Incidences<'_>
element. Read moreSource§impl<V, R, I, O, VW, RW> ElementIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> ElementIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn element_bound(&self) -> usize
fn element_bound(&self) -> usize
Source§fn element_index(&self, element: BcsrVertexId<V>) -> usize
fn element_index(&self, element: BcsrVertexId<V>) -> usize
element in this view. Read moreSource§impl<V, R, I, O, VW, RW> ElementPredecessors for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> ElementPredecessors for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type Predecessors<'view> = BcsrNeighborVertices<'view, RW, O, VW>
where
Self: 'view
type Predecessors<'view> = BcsrNeighborVertices<'view, RW, O, VW> where Self: 'view
Source§fn element_predecessors(
&self,
vertex: BcsrVertexId<V>,
) -> Self::Predecessors<'_>
fn element_predecessors( &self, vertex: BcsrVertexId<V>, ) -> Self::Predecessors<'_>
element through outgoing connections. Read moreSource§impl<V, R, I, O, VW, RW> ElementSuccessors for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> ElementSuccessors for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type Successors<'view> = BcsrNeighborVertices<'view, RW, O, VW>
where
Self: 'view
type Successors<'view> = BcsrNeighborVertices<'view, RW, O, VW> where Self: 'view
Source§fn element_successors(&self, vertex: BcsrVertexId<V>) -> Self::Successors<'_>
fn element_successors(&self, vertex: BcsrVertexId<V>) -> Self::Successors<'_>
element. Read moreSource§impl<V, R, I, O, VW, RW> HyperedgeParticipantCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> HyperedgeParticipantCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn hyperedge_participant_count(&self, hyperedge: BcsrHyperedgeId<R>) -> usize
fn hyperedge_participant_count(&self, hyperedge: BcsrHyperedgeId<R>) -> usize
hyperedge.Source§impl<V, R, I, O, VW, RW> HyperedgeParticipants for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> HyperedgeParticipants for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type Participants<'view> = Chain<BcsrIdSlice<'view, VW, BcsrVertexId<<VW as BcsrWord>::Index>>, BcsrIdSlice<'view, VW, BcsrVertexId<<VW as BcsrWord>::Index>>>
where
Self: 'view
type Participants<'view> = Chain<BcsrIdSlice<'view, VW, BcsrVertexId<<VW as BcsrWord>::Index>>, BcsrIdSlice<'view, VW, BcsrVertexId<<VW as BcsrWord>::Index>>> where Self: 'view
Source§fn hyperedge_participants(
&self,
hyperedge: BcsrHyperedgeId<R>,
) -> Self::Participants<'_>
fn hyperedge_participants( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::Participants<'_>
hyperedge.Source§impl<V, R, I, O, VW, RW> HypergraphCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> HypergraphCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn vertex_count(&self) -> usize
fn vertex_count(&self) -> usize
Source§fn hyperedge_count(&self) -> usize
fn hyperedge_count(&self) -> usize
Source§impl<V, R, I, O, VW, RW> IncidenceBase for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> IncidenceBase for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type IncidenceId = BcsrParticipantId<I>
type IncidenceId = BcsrParticipantId<I>
Source§impl<V, R, I, O, VW, RW> IncidenceCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> IncidenceCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn incidence_count(&self) -> usize
fn incidence_count(&self) -> usize
Source§impl<V, R, I, O, VW, RW> IncidenceElement for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> IncidenceElement for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn incidence_element(&self, incidence: BcsrParticipantId<I>) -> BcsrVertexId<V>
fn incidence_element(&self, incidence: BcsrParticipantId<I>) -> BcsrVertexId<V>
incidence. Read moreSource§impl<V, R, I, O, VW, RW> IncidenceIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> IncidenceIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn incidence_bound(&self) -> usize
fn incidence_bound(&self) -> usize
Source§fn incidence_index(&self, incidence: BcsrParticipantId<I>) -> usize
fn incidence_index(&self, incidence: BcsrParticipantId<I>) -> usize
incidence in this view. Read moreSource§impl<V, R, I, O, VW, RW> IncidenceRelation for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> IncidenceRelation for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn incidence_relation(
&self,
incidence: BcsrParticipantId<I>,
) -> BcsrHyperedgeId<R>
fn incidence_relation( &self, incidence: BcsrParticipantId<I>, ) -> BcsrHyperedgeId<R>
incidence. Read moreSource§impl<V, R, I, O, VW, RW> IncidenceRole for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> IncidenceRole for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn incidence_role(&self, incidence: BcsrParticipantId<I>) -> BcsrRole
fn incidence_role(&self, incidence: BcsrParticipantId<I>) -> BcsrRole
incidence. Read moreSource§impl<V, R, I, O, VW, RW> IncidentHyperedgeCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> IncidentHyperedgeCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn incident_hyperedge_count(&self, vertex: BcsrVertexId<V>) -> usize
fn incident_hyperedge_count(&self, vertex: BcsrVertexId<V>) -> usize
vertex.Source§impl<V, R, I, O, VW, RW> IncidentHyperedges for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> IncidentHyperedges for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type IncidentHyperedges<'view> = Chain<BcsrIdSlice<'view, RW, BcsrHyperedgeId<<RW as BcsrWord>::Index>>, BcsrIdSlice<'view, RW, BcsrHyperedgeId<<RW as BcsrWord>::Index>>>
where
Self: 'view
type IncidentHyperedges<'view> = Chain<BcsrIdSlice<'view, RW, BcsrHyperedgeId<<RW as BcsrWord>::Index>>, BcsrIdSlice<'view, RW, BcsrHyperedgeId<<RW as BcsrWord>::Index>>> where Self: 'view
Source§fn incident_hyperedges(
&self,
vertex: BcsrVertexId<V>,
) -> Self::IncidentHyperedges<'_>
fn incident_hyperedges( &self, vertex: BcsrVertexId<V>, ) -> Self::IncidentHyperedges<'_>
vertex.Source§impl<V, R, I, O, VW, RW> RelationIncidenceCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> RelationIncidenceCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn relation_incidence_count(&self, relation: BcsrHyperedgeId<R>) -> usize
fn relation_incidence_count(&self, relation: BcsrHyperedgeId<R>) -> usize
relation. Read moreSource§impl<V, R, I, O, VW, RW> RelationIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> RelationIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type Incidences<'view> = Chain<BcsrParticipantSlice<I>, BcsrParticipantSlice<I>>
where
Self: 'view
type Incidences<'view> = Chain<BcsrParticipantSlice<I>, BcsrParticipantSlice<I>> where Self: 'view
Source§fn relation_incidences(
&self,
relation: BcsrHyperedgeId<R>,
) -> Self::Incidences<'_>
fn relation_incidences( &self, relation: BcsrHyperedgeId<R>, ) -> Self::Incidences<'_>
relation. Read moreSource§impl<V, R, I, O, VW, RW> RelationIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> RelationIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn relation_bound(&self) -> usize
fn relation_bound(&self) -> usize
Source§fn relation_index(&self, relation: BcsrHyperedgeId<R>) -> usize
fn relation_index(&self, relation: BcsrHyperedgeId<R>) -> usize
relation in this view. Read moreSource§impl<V, R, I, O, VW, RW> TopologyBase for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> TopologyBase for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§type ElementId = BcsrVertexId<V>
type ElementId = BcsrVertexId<V>
Source§type RelationId = BcsrHyperedgeId<R>
type RelationId = BcsrHyperedgeId<R>
Source§impl<V, R, I, O, VW, RW> TopologyCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
impl<V, R, I, O, VW, RW> TopologyCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
Source§fn element_count(&self) -> usize
fn element_count(&self) -> usize
Source§fn relation_count(&self) -> usize
fn relation_count(&self) -> usize
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Copy for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
Auto Trait Implementations§
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Freeze for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> RefUnwindSafe for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Send for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Sync for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Unpin for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> UnsafeUnpin for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> UnwindSafe for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
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
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> 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> HyperedgeIndex for Twhere
T: RelationIndex,
impl<T> HyperedgeIndex for Twhere
T: RelationIndex,
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> 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> ParticipantIndex for Twhere
T: IncidenceIndex,
impl<T> ParticipantIndex for Twhere
T: IncidenceIndex,
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> 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.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.Source§impl<T> VertexIndex for Twhere
T: ElementIndex,
impl<T> VertexIndex for Twhere
T: ElementIndex,
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.