pub struct DisjointSetArrayU32<const SIZE: usize>(/* private fields */);Implementations§
Source§impl<const SIZE: usize> DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> DisjointSetArrayU32<SIZE>
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates new disjoint set. Does not compile if SIZE too big:
ⓘ
use aph_disjoint_set::DisjointSetArrayU8;
let _: DisjointSetArrayU8<500> = DisjointSetArrayU8::new();
#[cfg(miri)] // Miri doesn't catch compile error because it doesn't evaluate code in such tests.
let _: u32 = 0u64;Sourcepub fn initialize_inplace(memory: &mut MaybeUninit<Self>) -> &mut Self
pub fn initialize_inplace(memory: &mut MaybeUninit<Self>) -> &mut Self
Initializes some memory with default state of disjoint set and returns reference to it. Useful if you want hard guarantee that compiler doesn’t allocate some place on stack for temporary value during moves.
Does not compile if SIZE too big:
ⓘ
use core::mem::MaybeUninit;
use aph_disjoint_set::DisjointSetArrayU8;
let mut value: MaybeUninit<DisjointSetArrayU8<500>> = MaybeUninit::uninit();
DisjointSetArrayU8::initialize_inplace(&mut value);
#[cfg(miri)] // Miri doesn't catch compile error because it doesn't evaluate code in such tests.
let _: u32 = 0u64;§Example
use core::mem::MaybeUninit;
use aph_disjoint_set::DisjointSetArrayU8;
let mut value: MaybeUninit<DisjointSetArrayU8<10>> = MaybeUninit::uninit();
let djs = DisjointSetArrayU8::initialize_inplace(&mut value);
djs.union(9, 1);
assert!(djs.is_united(1, 9));Source§impl<const SIZE: usize> DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> DisjointSetArrayU32<SIZE>
Sourcepub fn union(&mut self, idx0: usize, idx1: usize) -> UnionResult
pub fn union(&mut self, idx0: usize, idx1: usize) -> UnionResult
Sourcepub fn split_at(&mut self, split_idx: usize) -> (ChunkMut<'_>, ChunkMut<'_>)
pub fn split_at(&mut self, split_idx: usize) -> (ChunkMut<'_>, ChunkMut<'_>)
Same as DisjointSet::split_at.
Sourcepub fn make_ro_view(&mut self) -> DisjointSetRoView<'_>
pub fn make_ro_view(&mut self) -> DisjointSetRoView<'_>
Same as DisjointSet::make_ro_view.
Sourcepub fn into_readonly(self) -> RoDisjointSetArrayU32<SIZE>
pub fn into_readonly(self) -> RoDisjointSetArrayU32<SIZE>
Same as DisjointSet::into_readonly.
Sourcepub fn compress_paths(&mut self)
pub fn compress_paths(&mut self)
Same as DisjointSet::compress_paths.
Sourcepub fn reset(&mut self)
pub fn reset(&mut self)
Same as DisjointSet::reset.
Trait Implementations§
Source§impl<const SIZE: usize> Clone for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> Clone for DisjointSetArrayU32<SIZE>
Source§fn clone(&self) -> DisjointSetArrayU32<SIZE>
fn clone(&self) -> DisjointSetArrayU32<SIZE>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const SIZE: usize> Default for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> Default for DisjointSetArrayU32<SIZE>
Source§impl<const SIZE: usize> From<RoDisjointSetArrayU32<SIZE>> for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> From<RoDisjointSetArrayU32<SIZE>> for DisjointSetArrayU32<SIZE>
Source§fn from(value: RoDisjointSetArrayU32<SIZE>) -> Self
fn from(value: RoDisjointSetArrayU32<SIZE>) -> Self
Converts to this type from the input type.
impl<const SIZE: usize> Copy for DisjointSetArrayU32<SIZE>
Auto Trait Implementations§
impl<const SIZE: usize> Freeze for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> RefUnwindSafe for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> Send for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> Sync for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> Unpin for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> UnsafeUnpin for DisjointSetArrayU32<SIZE>
impl<const SIZE: usize> UnwindSafe for DisjointSetArrayU32<SIZE>
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