Skip to main content

SplitIters

Struct SplitIters 

Source
pub struct SplitIters<I> {
    pub boundaries: Box<[usize]>,
    pub iters: Box<[I]>,
}
Expand description

A structure holding partition iterators and their boundaries.

This type holds a list of iterators and a list of boundaries, one more than the number of iterators. The implied semantics is that each iterator returns (labelled) pairs of nodes, and that the first element of each pair sits between the boundaries associated with the iterator.

This structures is returned by ParSortPairs and ParSortIters and can easily be converted into lenders for use with BvCompConfig::par_comp_lenders using a convenient implementation of the From trait.

Note that it sufficient to write let lenders: Vec<_> = split_iters.into() to perform the conversion. Type inference might not work properly if the call is embedded in a larger expression, in which case an explicit type annotation might be necessary.

Fields§

§boundaries: Box<[usize]>§iters: Box<[I]>

Implementations§

Source§

impl<I> SplitIters<I>

Source

pub fn new(boundaries: Box<[usize]>, iters: Box<[I]>) -> Self

Trait Implementations§

Source§

impl<I> From<(Box<[usize]>, Box<[I]>)> for SplitIters<I>

Source§

fn from((boundaries, iters): (Box<[usize]>, Box<[I]>)) -> Self

Converts to this type from the input type.
Source§

impl<I: Iterator<Item = (usize, usize)> + Send + Sync, IT: IntoIterator<Item = (usize, usize), IntoIter = I>> From<SplitIters<IT>> for Vec<LeftIterator<NodeLabels<(), Map<I, fn((usize, usize)) -> ((usize, usize), ())>>>>

Conversion of a SplitIters of iterators on unlabeled pairs into a sequence of pairs of starting points and associated lenders.

This is useful for converting the output of sorting utilities like ParSortPairs or ParSortIters into a form suitable for BvCompConfig::par_comp_lenders when working with unlabeled graphs.

The pairs (src, dst) are automatically converted to labeled form with unit labels, and the resulting lenders are wrapped with LeftIterator to project out just the successor nodes.

Note that it sufficient to write let lenders: Vec<_> = split_iters.into() to perform the conversion. Type inference might not work properly if the call is embedded in a larger expression, in which case an explicit type annotation might be necessary.

Source§

fn from(split: SplitIters<IT>) -> Self

Converts to this type from the input type.
Source§

impl<L: Clone + Copy + 'static, I: Iterator<Item = ((usize, usize), L)> + Send + Sync, IT: IntoIterator<Item = ((usize, usize), L), IntoIter = I>> From<SplitIters<IT>> for Vec<NodeLabels<L, I>>

Conversion of a SplitIters of iterators on labelled pairs into a sequences of pairs of starting points and associated lenders.

This is useful for converting the output of sorting utilities like ParSortPairs or ParSortIters into a form suitable for BvCompConfig::par_comp_lenders.

Note that it sufficient to write let lenders: Vec<_> = split_iters.into() to perform the conversion. Type inference might not work properly if the call is embedded in a larger expression, in which case an explicit type annotation might be necessary.

Source§

fn from(split: SplitIters<IT>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<I> Freeze for SplitIters<I>

§

impl<I> RefUnwindSafe for SplitIters<I>
where I: RefUnwindSafe,

§

impl<I> Send for SplitIters<I>
where I: Send,

§

impl<I> Sync for SplitIters<I>
where I: Sync,

§

impl<I> Unpin for SplitIters<I>

§

impl<I> UnsafeUnpin for SplitIters<I>

§

impl<I> UnwindSafe for SplitIters<I>
where I: UnwindSafe,

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> CastableFrom<T> for T

Source§

fn cast_from(value: T) -> T

Call Self as W
Source§

impl<T, U> CastableInto<U> for T
where U: CastableFrom<T>,

Source§

fn cast(self) -> U

Call W::cast_from(self)
Source§

impl<T> DowncastableFrom<T> for T

Source§

fn downcast_from(value: T) -> T

Truncate the current UnsignedInt to a possibly smaller size
Source§

impl<T, U> DowncastableInto<U> for T
where U: DowncastableFrom<T>,

Source§

fn downcast(self) -> U

Call W::downcast_from(self)
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Splat<T> for T

Source§

fn splat(value: T) -> T

Source§

impl<T> To<T> for T

Source§

fn to(self) -> T

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> UpcastableFrom<T> for T

Source§

fn upcast_from(value: T) -> T

Extend the current UnsignedInt to a possibly bigger size.
Source§

impl<T, U> UpcastableInto<U> for T
where U: UpcastableFrom<T>,

Source§

fn upcast(self) -> U

Call W::upcast_from(self)
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V