Skip to main content

BcsrHypergraph

Struct BcsrHypergraph 

Source
pub struct BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
where OffsetWord: LayoutWord<Index = IncidenceIndex>, VertexWord: LayoutWord<Index = VertexIndex>, RelationWord: LayoutWord<Index = RelationIndex>, VertexIndex: LayoutIndex, RelationIndex: LayoutIndex, IncidenceIndex: LayoutIndex,
{ /* 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 SnapshotWidth>::LittleEndianWord, <VertexIndex as SnapshotWidth>::LittleEndianWord, <RelationIndex as SnapshotWidth>::LittleEndianWord>
where VertexIndex: BcsrSnapshotIndex, RelationIndex: BcsrSnapshotIndex, IncidenceIndex: BcsrSnapshotIndex,

Source

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.

Source

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>
where OffsetWord: LayoutWord<Index = IncidenceIndex>, VertexWord: LayoutWord<Index = VertexIndex>, RelationWord: LayoutWord<Index = RelationIndex>, VertexIndex: LayoutIndex, RelationIndex: LayoutIndex, IncidenceIndex: LayoutIndex,

Source

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).

Source

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.

Source

pub const fn vertex_count(&self) -> usize

Returns the number of vertices in this view.

§Performance

This method is O(1).

Source

pub const fn hyperedge_count(&self) -> usize

Returns the number of hyperedges in this view.

§Performance

This method is O(1).

Source

pub const fn outgoing_incidence_count(&self) -> usize

Returns the number of outgoing incidences (P_head == P_outgoing).

§Performance

This method is O(1).

Source

pub const fn incoming_incidence_count(&self) -> usize

Returns the number of incoming incidences (P_tail == P_incoming).

§Performance

This method is O(1).

Trait Implementations§

Source§

impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Clone for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
where OffsetWord: LayoutWord<Index = IncidenceIndex> + Clone, VertexWord: LayoutWord<Index = VertexIndex> + Clone, RelationWord: LayoutWord<Index = RelationIndex> + Clone, VertexIndex: LayoutIndex + Clone, RelationIndex: LayoutIndex + Clone, IncidenceIndex: LayoutIndex + Clone,

Source§

fn clone( &self, ) -> BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<V, R, I, O, VW, RW> ContainsElement for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn contains_element(&self, element: BcsrVertexId<V>) -> bool

Returns whether element is valid and visible in this view. Read more
Source§

impl<V, R, I, O, VW, RW> ContainsIncidence for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn contains_incidence(&self, incidence: BcsrParticipantId<I>) -> bool

Returns whether incidence is valid and visible in this view. Read more
Source§

impl<V, R, I, O, VW, RW> ContainsRelation for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn contains_relation(&self, relation: BcsrHyperedgeId<R>) -> bool

Returns whether relation is valid and visible in this view. Read more
Source§

impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Copy for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
where OffsetWord: LayoutWord<Index = IncidenceIndex> + Copy, VertexWord: LayoutWord<Index = VertexIndex> + Copy, RelationWord: LayoutWord<Index = RelationIndex> + Copy, VertexIndex: LayoutIndex + Copy, RelationIndex: LayoutIndex + Copy, IncidenceIndex: LayoutIndex + Copy,

Source§

impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Debug for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
where OffsetWord: LayoutWord<Index = IncidenceIndex> + Debug, VertexWord: LayoutWord<Index = VertexIndex> + Debug, RelationWord: LayoutWord<Index = RelationIndex> + Debug, VertexIndex: LayoutIndex + Debug, RelationIndex: LayoutIndex + Debug, IncidenceIndex: LayoutIndex + Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<V, R, I, O, VW, RW> DirectedHyperedgeIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type SourceIncidences<'view> = BcsrParticipantSlice<I> where Self: 'view

Iterator over source-side participant incidence IDs.
Source§

type TargetIncidences<'view> = BcsrParticipantSlice<I> where Self: 'view

Iterator over target-side participant incidence IDs.
Source§

fn source_incidences( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::SourceIncidences<'_>

Returns source-side participant incidence IDs for hyperedge.
Source§

fn target_incidences( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::TargetIncidences<'_>

Returns target-side participant incidence IDs for hyperedge.
Source§

impl<V, R, I, O, VW, RW> DirectedHyperedgeParticipants for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type SourceParticipants<'view> = BcsrIdSlice<'view, VW, LocalId<VertexAxis, <VW as LayoutWord>::Index>> where Self: 'view

Iterator over source-side participants in one directed hyperedge.
Source§

type TargetParticipants<'view> = BcsrIdSlice<'view, VW, LocalId<VertexAxis, <VW as LayoutWord>::Index>> where Self: 'view

Iterator over target-side participants in one directed hyperedge.
Source§

fn source_participants( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::SourceParticipants<'_>

Returns source-side participants for hyperedge.
Source§

fn target_participants( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::TargetParticipants<'_>

Returns target-side participants for hyperedge.
Source§

impl<V, R, I, O, VW, RW> DirectedVertexHyperedges for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type OutgoingHyperedges<'view> = BcsrIdSlice<'view, RW, LocalId<HyperedgeAxis, <RW as LayoutWord>::Index>> where Self: 'view

Iterator over hyperedges where the vertex is source-side.
Source§

type IncomingHyperedges<'view> = BcsrIdSlice<'view, RW, LocalId<HyperedgeAxis, <RW as LayoutWord>::Index>> where Self: 'view

Iterator over hyperedges where the vertex is target-side.
Source§

fn outgoing_hyperedges( &self, vertex: BcsrVertexId<V>, ) -> Self::OutgoingHyperedges<'_>

Returns hyperedges where vertex participates on the source side.
Source§

fn incoming_hyperedges( &self, vertex: BcsrVertexId<V>, ) -> Self::IncomingHyperedges<'_>

Returns hyperedges where vertex participates on the target side.
Source§

impl<V, R, I, O, VW, RW> ElementIncidenceCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn element_incidence_count(&self, element: BcsrVertexId<V>) -> usize

Returns the number of incidences attached to element. Read more
Source§

impl<V, R, I, O, VW, RW> ElementIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type Incidences<'view> = BcsrElementIncidences<'view, O, VW, RW> where Self: 'view

Iterator over incidence IDs for one element. Read more
Source§

fn element_incidences(&self, element: BcsrVertexId<V>) -> Self::Incidences<'_>

Returns incidences attached to element. Read more
Source§

impl<V, R, I, O, VW, RW> ElementIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn element_bound(&self) -> usize

Returns the exclusive upper bound for element indexes in this view. Read more
Source§

fn element_index(&self, element: BcsrVertexId<V>) -> usize

Returns the dense index for element in this view. Read more
Source§

impl<V, R, I, O, VW, RW> ElementPredecessors for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type Predecessors<'view> = BcsrNeighborVertices<'view, RW, O, VW> where Self: 'view

Iterator over predecessor element IDs reaching one element. Read more
Source§

fn element_predecessors( &self, vertex: BcsrVertexId<V>, ) -> Self::Predecessors<'_>

Returns elements that reach element through outgoing connections. Read more
Source§

impl<V, R, I, O, VW, RW> ElementSuccessors for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type Successors<'view> = BcsrNeighborVertices<'view, RW, O, VW> where Self: 'view

Iterator over successor element IDs reached from one element. Read more
Source§

fn element_successors(&self, vertex: BcsrVertexId<V>) -> Self::Successors<'_>

Returns elements reachable through outgoing connections from element. Read more
Source§

impl<V, R, I, O, VW, RW> HyperedgeParticipants for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type Participants<'view> = Chain<BcsrIdSlice<'view, VW, LocalId<VertexAxis, <VW as LayoutWord>::Index>>, BcsrIdSlice<'view, VW, LocalId<VertexAxis, <VW as LayoutWord>::Index>>> where Self: 'view

Iterator over vertices participating in one hyperedge.
Source§

fn hyperedge_participants( &self, hyperedge: BcsrHyperedgeId<R>, ) -> Self::Participants<'_>

Returns vertices participating in hyperedge.
Source§

impl<V, R, I, O, VW, RW> HypergraphCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn vertex_count(&self) -> usize

Returns the number of vertices visible in this hypergraph view.
Source§

fn hyperedge_count(&self) -> usize

Returns the number of hyperedges visible in this hypergraph view.
Source§

impl<V, R, I, O, VW, RW> IncidenceBase for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type IncidenceId = LocalId<IncidenceAxis, I>

Identity of one element’s participation in one relation. Read more
Source§

type Role = BcsrRole

Implementation-defined participation role. Read more
Source§

impl<V, R, I, O, VW, RW> IncidenceCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn incidence_count(&self) -> usize

Returns the number of incidences visible in this topology view. Read more
Source§

impl<V, R, I, O, VW, RW> IncidenceElement for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn incidence_element(&self, incidence: BcsrParticipantId<I>) -> BcsrVertexId<V>

Returns the element participating through incidence. Read more
Source§

impl<V, R, I, O, VW, RW> IncidenceIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn incidence_bound(&self) -> usize

Returns the exclusive upper bound for incidence indexes in this view. Read more
Source§

fn incidence_index(&self, incidence: BcsrParticipantId<I>) -> usize

Returns the dense index for incidence in this view. Read more
Source§

impl<V, R, I, O, VW, RW> IncidenceRelation for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn incidence_relation( &self, incidence: BcsrParticipantId<I>, ) -> BcsrHyperedgeId<R>

Returns the relation containing incidence. Read more
Source§

impl<V, R, I, O, VW, RW> IncidenceRole for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn incidence_role(&self, incidence: BcsrParticipantId<I>) -> BcsrRole

Returns the role for incidence. Read more
Source§

impl<V, R, I, O, VW, RW> IncidentHyperedges for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type IncidentHyperedges<'view> = Chain<BcsrIdSlice<'view, RW, LocalId<HyperedgeAxis, <RW as LayoutWord>::Index>>, BcsrIdSlice<'view, RW, LocalId<HyperedgeAxis, <RW as LayoutWord>::Index>>> where Self: 'view

Iterator over hyperedges incident to one vertex.
Source§

fn incident_hyperedges( &self, vertex: BcsrVertexId<V>, ) -> Self::IncidentHyperedges<'_>

Returns hyperedges incident to vertex.
Source§

impl<V, R, I, O, VW, RW> RelationIncidenceCount for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn relation_incidence_count(&self, relation: BcsrHyperedgeId<R>) -> usize

Returns the number of incidences attached to relation. Read more
Source§

impl<V, R, I, O, VW, RW> RelationIncidences for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type Incidences<'view> = Chain<BcsrParticipantSlice<I>, BcsrParticipantSlice<I>> where Self: 'view

Iterator over incidence IDs for one relation. Read more
Source§

fn relation_incidences( &self, relation: BcsrHyperedgeId<R>, ) -> Self::Incidences<'_>

Returns incidences attached to relation. Read more
Source§

impl<V, R, I, O, VW, RW> RelationIndex for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn relation_bound(&self) -> usize

Returns the exclusive upper bound for relation indexes in this view. Read more
Source§

fn relation_index(&self, relation: BcsrHyperedgeId<R>) -> usize

Returns the dense index for relation in this view. Read more
Source§

impl<V, R, I, O, VW, RW> TopologyBase for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

type ElementId = LocalId<VertexAxis, V>

Identity of a topology element. Read more
Source§

type RelationId = LocalId<HyperedgeAxis, R>

Identity of a topology relation. Read more
Source§

impl<V, R, I, O, VW, RW> TopologyCounts for BcsrHypergraph<'_, V, R, I, O, VW, RW>
where V: LayoutIndex, R: LayoutIndex, I: LayoutIndex, O: LayoutWord<Index = I>, VW: LayoutWord<Index = V>, RW: LayoutWord<Index = R>,

Source§

fn element_count(&self) -> usize

Returns the number of elements visible in this topology view. Read more
Source§

fn relation_count(&self) -> usize

Returns the number of relations visible in this topology view. Read more

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>
where OffsetWord: RefUnwindSafe, VertexWord: RefUnwindSafe, RelationWord: RefUnwindSafe,

§

impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Send for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
where OffsetWord: Sync, VertexWord: Sync, RelationWord: Sync,

§

impl<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord> Sync for BcsrHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex, OffsetWord, VertexWord, RelationWord>
where OffsetWord: Sync, VertexWord: Sync, RelationWord: Sync,

§

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>
where OffsetWord: RefUnwindSafe, VertexWord: RefUnwindSafe, RelationWord: RefUnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> ContainsHyperedge for T

Source§

fn contains_hyperedge(&self, hyperedge: Self::RelationId) -> bool

Returns whether hyperedge is valid and visible in this hypergraph view.
Source§

impl<T> ContainsParticipant for T

Source§

fn contains_participant(&self, participant: Self::IncidenceId) -> bool

Returns whether participant is valid and visible in this hypergraph view.
Source§

impl<T> ContainsVertex for T
where T: ContainsElement,

Source§

fn contains_vertex(&self, vertex: Self::ElementId) -> bool

Returns whether vertex is valid and visible in this hypergraph view.
Source§

impl<T> DirectedHypergraph for T

Source§

impl<T> DirectedVertexPredecessors for T

Source§

type VertexPredecessors<'view> = <T as ElementPredecessors>::Predecessors<'view> where T: 'view

Iterator over predecessor vertices reaching one target-side vertex.
Source§

fn predecessor_vertices( &self, vertex: <T as TopologyBase>::ElementId, ) -> <T as DirectedVertexPredecessors>::VertexPredecessors<'_>

Returns source-side vertices that can reach vertex.
Source§

impl<T> DirectedVertexSuccessors for T

Source§

type VertexSuccessors<'view> = <T as ElementSuccessors>::Successors<'view> where T: 'view

Iterator over successor vertices reachable from one source-side vertex.
Source§

fn successor_vertices( &self, vertex: <T as TopologyBase>::ElementId, ) -> <T as DirectedVertexSuccessors>::VertexSuccessors<'_>

Returns target-side vertices reachable from vertex.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> HyperedgeIncidences for T

Source§

type ParticipantIds<'view> = <T as RelationIncidences>::Incidences<'view> where T: 'view

Iterator over participant IDs attached to one hyperedge.
Source§

fn hyperedge_incidences( &self, hyperedge: <T as TopologyBase>::RelationId, ) -> <T as HyperedgeIncidences>::ParticipantIds<'_>

Returns participant IDs attached to hyperedge.
Source§

impl<T> HyperedgeIndex for T
where T: RelationIndex,

Source§

fn hyperedge_bound(&self) -> usize

Returns the exclusive upper bound for hyperedge indexes in this view.
Source§

fn hyperedge_index(&self, hyperedge: Self::RelationId) -> usize

Returns the dense index for hyperedge in this view.
Source§

impl<T> HyperedgeParticipantCount for T

Source§

fn hyperedge_participant_count(&self, hyperedge: Self::RelationId) -> usize

Returns the number of participants attached to hyperedge.
Source§

impl<T> Hypergraph for T

Source§

impl<T> HypergraphBase for T
where T: TopologyBase,

Source§

impl<T> IncidenceView for T

Source§

impl<T> IncidentHyperedgeCount for T

Source§

fn incident_hyperedge_count(&self, vertex: Self::ElementId) -> usize

Returns the number of hyperedges incident to vertex.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ParticipantBase for T
where T: IncidenceBase,

Source§

impl<T> ParticipantCounts for T
where T: IncidenceCounts,

Source§

fn participant_count(&self) -> usize

Returns the total number of participant records visible in this view.
Source§

impl<T> ParticipantHyperedge for T

Source§

fn participant_hyperedge( &self, participant: Self::IncidenceId, ) -> Self::RelationId

Returns the hyperedge carrying participant.
Source§

impl<T> ParticipantIndex for T
where T: IncidenceIndex,

Source§

fn participant_bound(&self) -> usize

Returns the exclusive upper bound for participant indexes in this view.
Source§

fn participant_index(&self, participant: Self::IncidenceId) -> usize

Returns the dense index for participant in this view.
Source§

impl<T> ParticipantRoleOf for T
where T: IncidenceRole,

Source§

fn participant_role_of(&self, participant: Self::IncidenceId) -> Self::Role

Returns the role recorded for participant.
Source§

impl<T> ParticipantVertex for T

Source§

fn participant_vertex(&self, participant: Self::IncidenceId) -> Self::ElementId

Returns the vertex referenced by participant.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> VertexIncidences for T

Source§

type ParticipantIds<'view> = <T as ElementIncidences>::Incidences<'view> where T: 'view

Iterator over participant IDs attached to one vertex.
Source§

fn vertex_incidences( &self, vertex: <T as TopologyBase>::ElementId, ) -> <T as VertexIncidences>::ParticipantIds<'_>

Returns participant IDs attached to vertex.
Source§

impl<T> VertexIndex for T
where T: ElementIndex,

Source§

fn vertex_bound(&self) -> usize

Returns the exclusive upper bound for vertex indexes in this view.
Source§

fn vertex_index(&self, vertex: Self::ElementId) -> usize

Returns the dense index for vertex in this view.