#![no_std]
#[cfg(feature = "build")]
extern crate alloc;
#[cfg(kani)]
extern crate kani;
#[cfg(feature = "build")]
pub mod build;
mod error;
mod id;
mod internal;
mod snapshot;
mod word;
#[cfg(kani)]
mod proofs;
pub use crate::{
error::{BcsrError, BcsrRoleSide, BcsrSection, BcsrSnapshotError},
id::{BcsrHyperedgeId, BcsrParticipantId, BcsrRole, BcsrVertexId},
internal::{
BcsrChainedHyperedges, BcsrChainedParticipants, BcsrChainedRelationIncidences,
BcsrElementIncidences, BcsrHyperedgeSlice, BcsrHypergraph, BcsrParticipantSlice,
BcsrPredecessorVertices, BcsrSections, BcsrSuccessorVertices, BcsrValidation,
BcsrVertexSlice,
},
snapshot::{
SNAPSHOT_KIND_BCSR_HEAD_OFFSETS_U16, SNAPSHOT_KIND_BCSR_HEAD_OFFSETS_U32,
SNAPSHOT_KIND_BCSR_HEAD_OFFSETS_U64, SNAPSHOT_KIND_BCSR_HEAD_PARTICIPANTS_U16,
SNAPSHOT_KIND_BCSR_HEAD_PARTICIPANTS_U32, SNAPSHOT_KIND_BCSR_HEAD_PARTICIPANTS_U64,
SNAPSHOT_KIND_BCSR_TAIL_OFFSETS_U16, SNAPSHOT_KIND_BCSR_TAIL_OFFSETS_U32,
SNAPSHOT_KIND_BCSR_TAIL_OFFSETS_U64, SNAPSHOT_KIND_BCSR_TAIL_PARTICIPANTS_U16,
SNAPSHOT_KIND_BCSR_TAIL_PARTICIPANTS_U32, SNAPSHOT_KIND_BCSR_TAIL_PARTICIPANTS_U64,
SNAPSHOT_KIND_BCSR_VERTEX_INCOMING_HYPEREDGES_U16,
SNAPSHOT_KIND_BCSR_VERTEX_INCOMING_HYPEREDGES_U32,
SNAPSHOT_KIND_BCSR_VERTEX_INCOMING_HYPEREDGES_U64,
SNAPSHOT_KIND_BCSR_VERTEX_INCOMING_OFFSETS_U16,
SNAPSHOT_KIND_BCSR_VERTEX_INCOMING_OFFSETS_U32,
SNAPSHOT_KIND_BCSR_VERTEX_INCOMING_OFFSETS_U64,
SNAPSHOT_KIND_BCSR_VERTEX_OUTGOING_HYPEREDGES_U16,
SNAPSHOT_KIND_BCSR_VERTEX_OUTGOING_HYPEREDGES_U32,
SNAPSHOT_KIND_BCSR_VERTEX_OUTGOING_HYPEREDGES_U64,
SNAPSHOT_KIND_BCSR_VERTEX_OUTGOING_OFFSETS_U16,
SNAPSHOT_KIND_BCSR_VERTEX_OUTGOING_OFFSETS_U32,
SNAPSHOT_KIND_BCSR_VERTEX_OUTGOING_OFFSETS_U64,
},
word::{BcsrIndex, BcsrSnapshotIndex, BcsrSnapshotWord, BcsrWord},
};
pub type BcsrNativeHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex> = BcsrHypergraph<
'view,
VertexIndex,
RelationIndex,
IncidenceIndex,
IncidenceIndex,
VertexIndex,
RelationIndex,
>;
pub type BcsrSnapshotHypergraph<'view, VertexIndex, RelationIndex, IncidenceIndex> = BcsrHypergraph<
'view,
VertexIndex,
RelationIndex,
IncidenceIndex,
<IncidenceIndex as BcsrSnapshotIndex>::LittleEndianWord,
<VertexIndex as BcsrSnapshotIndex>::LittleEndianWord,
<RelationIndex as BcsrSnapshotIndex>::LittleEndianWord,
>;