[][src]Struct libojo::Edge

pub struct Edge {
    pub kind: EdgeKind,
    pub dest: NodeId,
    pub patch: PatchId,
}

This struct represents a directed edge in a graggle graph.

Note that we don't actually store the source node, only the destination. However, the main way of getting access to an Edge is via the Graggle::out_edges or Graggle::in_edges functions, so usually you will only encounter an Edge if you already know what the source node is.

Note that edges are ordered, and that live edges will always come before deleted edges. This helps ensure quick access to live edges.

Fields

kind: EdgeKind

What kind of edge is it?

dest: NodeId

The destination of this (directed) edge.

patch: PatchId

Which patch introduced this edge?

If this is a pseudo-edge, then this field will be "blank", meaning that it will be set to PatchId::cur.

This field is necessary because of the possiblity that two different patches will add the same edge. If this happens and then one of the patches is unapplied, we'd better make sure to still have an edge present afterwards.

Trait Implementations

impl PartialEq<Edge> for Edge[src]

impl Ord for Edge[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

impl Clone for Edge[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Eq for Edge[src]

impl Copy for Edge[src]

impl PartialOrd<Edge> for Edge[src]

impl Hash for Edge[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Debug for Edge[src]

impl Edge<NodeId> for Edge[src]

impl<'de> Deserialize<'de> for Edge[src]

impl Serialize for Edge[src]

Auto Trait Implementations

impl Send for Edge

impl Sync for Edge

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<N> Edge for N where
    N: Copy
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> Same for T

type Output = T

Should always be Self