pub struct HyperGraph<VertexIndex, Values> { /* private fields */ }Expand description
3-regular hyper-graph.
Implementations§
Source§impl<VI> HyperGraph<VI, ()>where
VI: VertexIndex,
impl<VI> HyperGraph<VI, ()>where
VI: VertexIndex,
Sourcepub fn new(number_of_vertices: usize) -> HyperGraph<VI, ()>
pub fn new(number_of_vertices: usize) -> HyperGraph<VI, ()>
Constructs hyper-graph with the given number_of_vertices.
Sourcepub fn peel(self, number_of_edges: usize) -> Vec<(VI, VI, VI)>
pub fn peel(self, number_of_edges: usize) -> Vec<(VI, VI, VI)>
Returns a sequence of the graph edges v0=(a0, b0, c0), v1=(a1, b1, c1), … such that the vertex ai is not incident to the edge vj for all j>i.
Source§impl<VI> HyperGraph<VI, PackedInts>where
VI: VertexIndex,
impl<VI> HyperGraph<VI, PackedInts>where
VI: VertexIndex,
Sourcepub fn with_bits_per_value(
number_of_vertices: usize,
bits_per_value: u8,
) -> HyperGraph<VI, PackedInts>
pub fn with_bits_per_value( number_of_vertices: usize, bits_per_value: u8, ) -> HyperGraph<VI, PackedInts>
Constructs hyper-graph with the given number_of_vertices whose can have assigned values of a given bit-size.
Source§impl<VI, Values> HyperGraph<VI, Values>where
VI: VertexIndex,
Values: EdgeValues,
impl<VI, Values> HyperGraph<VI, Values>where
VI: VertexIndex,
Values: EdgeValues,
pub fn with_values( number_of_vertices: usize, values: Values, ) -> HyperGraph<VI, Values>
Sourcepub fn add_edge_with_value(
&mut self,
a: usize,
b: usize,
c: usize,
value: <Values as EdgeValues>::Value,
)
pub fn add_edge_with_value( &mut self, a: usize, b: usize, c: usize, value: <Values as EdgeValues>::Value, )
Adds to self the edge (a, b, c) with assigned value.
Sourcepub fn peel_with_values<VC>(
self,
number_of_edges: usize,
value_consumer: VC,
) -> Vec<(VI, VI, VI)>
pub fn peel_with_values<VC>( self, number_of_edges: usize, value_consumer: VC, ) -> Vec<(VI, VI, VI)>
Returns a sequence of the graph edges v0=(a0, b0, c0), v1=(a1, b1, c1), …
such that the vertex ai is not incident to the edge vj for all j>i.
Call value_consumer for each value assigned to the edge pushed to the returned sequence.
Auto Trait Implementations§
impl<VertexIndex, Values> Freeze for HyperGraph<VertexIndex, Values>where
Values: Freeze,
impl<VertexIndex, Values> RefUnwindSafe for HyperGraph<VertexIndex, Values>where
Values: RefUnwindSafe,
VertexIndex: RefUnwindSafe,
impl<VertexIndex, Values> Send for HyperGraph<VertexIndex, Values>
impl<VertexIndex, Values> Sync for HyperGraph<VertexIndex, Values>
impl<VertexIndex, Values> Unpin for HyperGraph<VertexIndex, Values>
impl<VertexIndex, Values> UnsafeUnpin for HyperGraph<VertexIndex, Values>where
Values: UnsafeUnpin,
impl<VertexIndex, Values> UnwindSafe for HyperGraph<VertexIndex, Values>where
Values: UnwindSafe,
VertexIndex: UnwindSafe,
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
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more