pub struct MapReduce<G: SwhForwardGraph + SwhBackwardGraph, MR: MapReducer> {
pub map_reducer: MR,
/* private fields */
}Expand description
Associates labels to nodes in the graph using successor nodes’ labels and “bubbling up”
Use swh_graph::views::Subgraph to select the set of nodes to run this on.
For example, to avoid content and directory nodes (which are typically much slower to process),
use Subgraph::with_node_constraint("rev,rel,snp,ori".parse().unwrap()).
§Example
For example, with this graph:
- 3
/
<-
1 <--- 4 <--+
+--- 6
2 <--- 5 <--+We call 1 a successor of 3, consistent with swh-graph’s terminology, even though MapReducer propagates labels in the other direction.
we would:
- compute label of 1
- compute label of 2
- compute label of 2 and merge it with 1’s
- compute label of 4 and merge it with 1’s
- compute label of 5 and merge it with 2’s
- compute label of 6 and merge it with 4’s and 5’s
Fields§
§map_reducer: MRImplementations§
Source§impl<G: SwhForwardGraph + SwhBackwardGraph, MR: MapReducer> MapReduce<G, MR>
impl<G: SwhForwardGraph + SwhBackwardGraph, MR: MapReducer> MapReduce<G, MR>
Auto Trait Implementations§
impl<G, MR> Freeze for MapReduce<G, MR>
impl<G, MR> RefUnwindSafe for MapReduce<G, MR>where
G: RefUnwindSafe,
MR: RefUnwindSafe,
impl<G, MR> Send for MapReduce<G, MR>
impl<G, MR> Sync for MapReduce<G, MR>
impl<G, MR> Unpin for MapReduce<G, MR>
impl<G, MR> UnsafeUnpin for MapReduce<G, MR>where
G: UnsafeUnpin,
MR: UnsafeUnpin,
impl<G, MR> UnwindSafe for MapReduce<G, MR>where
G: UnwindSafe,
MR: 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, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
impl<T, U> CastableInto<U> for Twhere
U: CastableFrom<T>,
Source§impl<T> DowncastableFrom<T> for T
impl<T> DowncastableFrom<T> for T
Source§fn downcast_from(value: T) -> T
fn downcast_from(value: T) -> T
Truncate the current UnsignedInt to a possibly smaller size
Source§impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
impl<T, U> DowncastableInto<U> for Twhere
U: DowncastableFrom<T>,
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> UpcastableFrom<T> for T
impl<T> UpcastableFrom<T> for T
Source§fn upcast_from(value: T) -> T
fn upcast_from(value: T) -> T
Extend the current UnsignedInt to a possibly bigger size.