Skip to main content

GraphSpy

Struct GraphSpy 

Source
pub struct GraphSpy<G: SwhGraph, MAPS: MaybeMaps = NoMaps, TIMESTAMPS: MaybeTimestamps = NoTimestamps, PERSONS: MaybePersons = NoPersons, CONTENTS: MaybeContents = NoContents, STRINGS: MaybeStrings = NoStrings, LABELNAMES: MaybeLabelNames = NoLabelNames> {
    pub history: Arc<Mutex<Vec<GraphAccessRecord>>>,
    /* private fields */
}
Expand description

Wraps a graph, and records calls to its methods, useful for tests

Fields§

§history: Arc<Mutex<Vec<GraphAccessRecord>>>

History of graph accesses

Implementations§

Source§

impl<G: SwhGraphWithProperties<Contents: OptContents>, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames> GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, NoContents, STRINGS, LABELNAMES>

Source

pub fn with_contents( self, ) -> GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, ContentsSpy<G>, STRINGS, LABELNAMES>

Source§

impl<G: SwhGraphWithProperties<LabelNames: LabelNames>, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings> GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, NoLabelNames>

Source

pub fn with_label_names( self, ) -> GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LabelNamesSpy<G>>

Source§

impl<G: SwhGraphWithProperties<Maps: Maps>, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames> GraphSpy<G, NoMaps, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>

Source

pub fn with_maps( self, ) -> GraphSpy<G, MapsSpy<G>, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>

Source§

impl<G: SwhGraphWithProperties<Persons: OptPersons>, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames> GraphSpy<G, MAPS, TIMESTAMPS, NoPersons, CONTENTS, STRINGS, LABELNAMES>

Source

pub fn with_persons( self, ) -> GraphSpy<G, MAPS, TIMESTAMPS, PersonsSpy<G>, CONTENTS, STRINGS, LABELNAMES>

Source§

impl<G: SwhGraphWithProperties<Strings: OptStrings>, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, LABELNAMES: MaybeLabelNames> GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, NoStrings, LABELNAMES>

Source

pub fn with_strings( self, ) -> GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, StringsSpy<G>, LABELNAMES>

Source§

impl<G: SwhGraphWithProperties<Timestamps: OptTimestamps>, MAPS: MaybeMaps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames> GraphSpy<G, MAPS, NoTimestamps, PERSONS, CONTENTS, STRINGS, LABELNAMES>

Source

pub fn with_timestamps( self, ) -> GraphSpy<G, MAPS, TimestampsSpy<G>, PERSONS, CONTENTS, STRINGS, LABELNAMES>

Source§

impl<G: SwhGraph> GraphSpy<G, NoMaps, NoTimestamps, NoPersons, NoContents, NoStrings, NoLabelNames>

Source

pub fn new(graph: G) -> Self

Source§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where G: SwhGraph, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames,

Source

pub fn graph(&self) -> &G

Trait Implementations§

Source§

impl<G: Debug + SwhGraph, MAPS: Debug + MaybeMaps, TIMESTAMPS: Debug + MaybeTimestamps, PERSONS: Debug + MaybePersons, CONTENTS: Debug + MaybeContents, STRINGS: Debug + MaybeStrings, LABELNAMES: Debug + MaybeLabelNames> Debug for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> SwhBackwardGraph for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where G: SwhBackwardGraph, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames,

Source§

type Predecessors<'succ> = <G as SwhBackwardGraph>::Predecessors<'succ> where Self: 'succ

Source§

fn predecessors(&self, node_id: NodeId) -> Self::Predecessors<'_>

Return an IntoIterator over the predecessors of a node.
Source§

fn indegree(&self, node_id: NodeId) -> usize

Return the number of predecessors of a node.
Source§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> SwhForwardGraph for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where G: SwhForwardGraph, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames,

Source§

type Successors<'succ> = <G as SwhForwardGraph>::Successors<'succ> where Self: 'succ

Source§

fn successors(&self, node_id: NodeId) -> Self::Successors<'_>

Return an IntoIterator over the successors of a node.
Source§

fn outdegree(&self, node_id: NodeId) -> usize

Return the number of successors of a node.
Source§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> SwhGraph for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where G: SwhGraph, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames,

Source§

fn path(&self) -> &Path

Return the base path of the graph
Source§

fn is_transposed(&self) -> bool

Returns whether the graph is in the ori->snp->rel,rev->dir->cnt direction (with a few dir->rev arcs)
Source§

fn num_nodes(&self) -> usize

Return the largest node id in the graph plus one. Read more
Source§

fn has_node(&self, node_id: NodeId) -> bool

Returns whether the given node id exists in the graph Read more
Source§

fn num_arcs(&self) -> u64

Return the number of arcs in the graph.
Source§

fn num_nodes_by_type(&self) -> Result<HashMap<NodeType, usize>>

Returns the number of nodes of each type, if known.
Source§

fn num_arcs_by_type(&self) -> Result<HashMap<(NodeType, NodeType), usize>>

Returns the number of arcs of each type, if known.
Source§

fn has_arc(&self, src_node_id: NodeId, dst_node_id: NodeId) -> bool

Return whether there is an arc going from src_node_id to dst_node_id.
Source§

fn actual_num_nodes(&self) -> Result<usize>

Returns the number of nodes in the graph, if known.
Source§

fn iter_nodes<'a>( &'a self, pl: impl ProgressLog + 'a, ) -> impl Iterator<Item = NodeId> + 'a

Returns an iterator on all the nodes Read more
Source§

fn par_iter_nodes<'a>( &'a self, pl: impl ConcurrentProgressLog + 'a, ) -> impl ParallelIterator<Item = NodeId> + 'a
where Self: Sync,

Returns a parallel iterator on all the nodes Read more
Source§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> SwhGraphWithProperties for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where G: SwhGraphWithProperties, MAPS: MaybeMaps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames,

Source§

type Maps = MAPS

Source§

type Timestamps = TIMESTAMPS

Source§

type Persons = PERSONS

Source§

type Contents = CONTENTS

Source§

type Strings = STRINGS

Source§

type LabelNames = LABELNAMES

Source§

fn properties( &self, ) -> &SwhGraphProperties<Self::Maps, Self::Timestamps, Self::Persons, Self::Contents, Self::Strings, Self::LabelNames>

Source§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> SwhLabeledBackwardGraph for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where G: SwhLabeledBackwardGraph, MAPS: Maps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames,

Source§

type LabeledArcs<'arc> = <G as SwhLabeledBackwardGraph>::LabeledArcs<'arc> where Self: 'arc

Source§

type LabeledPredecessors<'succ> = <G as SwhLabeledBackwardGraph>::LabeledPredecessors<'succ> where Self: 'succ

Source§

fn untyped_labeled_predecessors( &self, node_id: NodeId, ) -> Self::LabeledPredecessors<'_>

Return an IntoIterator over the predecessors of a node along with a list of labels of each arc
Source§

fn labeled_predecessors( &self, node_id: NodeId, ) -> impl IntoIterator<Item = (usize, impl Iterator<Item = EdgeLabel>)> + IntoFlattenedLabeledArcsIterator<EdgeLabel> + '_

Return an IntoIterator over the predecessors of a node along with a list of labels of each arc
Source§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> SwhLabeledForwardGraph for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where G: SwhLabeledForwardGraph, MAPS: Maps, TIMESTAMPS: MaybeTimestamps, PERSONS: MaybePersons, CONTENTS: MaybeContents, STRINGS: MaybeStrings, LABELNAMES: MaybeLabelNames,

Source§

type LabeledArcs<'arc> = <G as SwhLabeledForwardGraph>::LabeledArcs<'arc> where Self: 'arc

Source§

type LabeledSuccessors<'succ> = <G as SwhLabeledForwardGraph>::LabeledSuccessors<'succ> where Self: 'succ

Source§

fn untyped_labeled_successors( &self, node_id: NodeId, ) -> Self::LabeledSuccessors<'_>

Return an IntoIterator over the successors of a node along with a list of labels of each arc
Source§

fn labeled_successors( &self, node_id: NodeId, ) -> impl Iterator<Item = (usize, impl Iterator<Item = EdgeLabel>)> + IntoFlattenedLabeledArcsIterator<EdgeLabel> + '_

Return an IntoIterator over the successors of a node along with a list of labels of each arc

Auto Trait Implementations§

§

impl<G, MAPS = NoMaps, TIMESTAMPS = NoTimestamps, PERSONS = NoPersons, CONTENTS = NoContents, STRINGS = NoStrings, LABELNAMES = NoLabelNames> !Freeze for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>

§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> RefUnwindSafe for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where MAPS: RefUnwindSafe, TIMESTAMPS: RefUnwindSafe, PERSONS: RefUnwindSafe, CONTENTS: RefUnwindSafe, STRINGS: RefUnwindSafe, LABELNAMES: RefUnwindSafe, G: RefUnwindSafe,

§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> Send for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where MAPS: Send, TIMESTAMPS: Send, PERSONS: Send, CONTENTS: Send, STRINGS: Send, LABELNAMES: Send, G: Sync + Send,

§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> Sync for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where MAPS: Sync, TIMESTAMPS: Sync, PERSONS: Sync, CONTENTS: Sync, STRINGS: Sync, LABELNAMES: Sync, G: Sync + Send,

§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> Unpin for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where MAPS: Unpin, TIMESTAMPS: Unpin, PERSONS: Unpin, CONTENTS: Unpin, STRINGS: Unpin, LABELNAMES: Unpin,

§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> UnsafeUnpin for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where MAPS: UnsafeUnpin, TIMESTAMPS: UnsafeUnpin, PERSONS: UnsafeUnpin, CONTENTS: UnsafeUnpin, STRINGS: UnsafeUnpin, LABELNAMES: UnsafeUnpin,

§

impl<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES> UnwindSafe for GraphSpy<G, MAPS, TIMESTAMPS, PERSONS, CONTENTS, STRINGS, LABELNAMES>
where MAPS: UnwindSafe, TIMESTAMPS: UnwindSafe, PERSONS: UnwindSafe, CONTENTS: UnwindSafe, STRINGS: UnwindSafe, LABELNAMES: UnwindSafe, G: RefUnwindSafe,

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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