Skip to main content

SortedLender

Trait SortedLender 

Source
pub unsafe trait SortedLender: Lender { }
Expand description

Marker trait for lenders returned by SequentialLabeling::iter yielding node ids in ascending order.

The AssumeSortedLender type can be used to wrap a lender and unsafely implement this trait.

§Safety

The first element of the pairs returned by the iterator must go from zero to the number of nodes of the graph, excluded.

§Examples

To bind the lender returned by SequentialLabeling::iter to implement this trait, you must use higher-rank trait bounds:

use webgraph::traits::*;

fn takes_labeling_with_sorted_lender<G>(g: G) where
    G: SequentialLabeling,
    for<'a> G::Lender<'a>: SortedLender,
{
    // ...
}

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<D: Decode> SortedLender for webgraph::graphs::bvgraph::sequential::NodeLabels<D>

Source§

impl<G: RandomAccessLabeling> SortedLender for LenderImpl<'_, G>

Source§

impl<I: SortedLender + Lender + for<'next> NodeLabelsLender<'next, Label = usize>> SortedLender for webgraph::graphs::no_selfloops_graph::NodeLabels<I>

Source§

impl<L> SortedLender for LeftIterator<L>
where L: Lender + for<'next> NodeLabelsLender<'next> + SortedLender, for<'next> LenderLabel<'next, L>: Pair,

Source§

impl<L> SortedLender for RightIterator<L>
where L: Lender + for<'next> NodeLabelsLender<'next> + SortedLender, for<'next> LenderLabel<'next, L>: Pair,

Source§

impl<L: Clone + 'static, I: Iterator<Item = ((usize, usize), L)> + Clone> SortedLender for webgraph::graphs::arc_list_graph::NodeLabels<L, I>

Source§

impl<L: Lender> SortedLender for AssumeSortedLender<L>

Source§

impl<L: SortedLender + for<'next> NodeLabelsLender<'next>, R: SortedLender + for<'next> NodeLabelsLender<'next>> SortedLender for webgraph::labels::zip::NodeLabels<L, R>

Source§

impl<O: Iterator<Item = usize>, S: Iterator<Item = usize>> SortedLender for LenderSortedImpl<O, S>

Source§

impl<O: Iterator<Item = usize>, S: Iterator<Item = usize>> SortedLender for webgraph::graphs::csr_graph::NodeLabels<O, S>