Edges

Trait Edges 

Source
pub trait Edges: Sized {
    // Required method
    fn construct(resources: &mut TypeMap) -> Result<Self, GraphError>;

    // Provided methods
    fn reads() -> Vec<TypeKey> { ... }
    fn writes() -> Vec<TypeKey> { ... }
    fn moves() -> Vec<TypeKey> { ... }
}
Expand description

Trait for describing types that are made up of graph edges (ie resources).

Graph edges are the resources that graph nodes (ie functions) consume.

The Edges trait allows the library user to construct types that use resources. This is convenient when the number of resources becomes large and using a tuple becomes unwieldy.

There exists a derive macro Edges to help implementing this trait.

Required Methodsยง

Source

fn construct(resources: &mut TypeMap) -> Result<Self, GraphError>

Attempt to construct the implementor from the given TypeMap.

Provided Methodsยง

Source

fn reads() -> Vec<TypeKey>

Keys of all read types used in fields in the implementor.

Source

fn writes() -> Vec<TypeKey>

Keys of all write types used in fields in the implementor.

Source

fn moves() -> Vec<TypeKey>

Keys of all move types used in fields in the implementor.

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.

Implementations on Foreign Typesยง

Sourceยง

impl Edges for ()

Sourceยง

impl<A: Edges> Edges for (A,)

Sourceยง

impl<A: Edges, B: Edges> Edges for (A, B)

Sourceยง

impl<A: Edges, B: Edges, C: Edges> Edges for (A, B, C)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges> Edges for (A, B, C, D)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges, E: Edges> Edges for (A, B, C, D, E)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges, E: Edges, F: Edges> Edges for (A, B, C, D, E, F)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges, E: Edges, F: Edges, G: Edges> Edges for (A, B, C, D, E, F, G)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges, E: Edges, F: Edges, G: Edges, H: Edges> Edges for (A, B, C, D, E, F, G, H)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges, E: Edges, F: Edges, G: Edges, H: Edges, I: Edges> Edges for (A, B, C, D, E, F, G, H, I)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges, E: Edges, F: Edges, G: Edges, H: Edges, I: Edges, J: Edges> Edges for (A, B, C, D, E, F, G, H, I, J)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges, E: Edges, F: Edges, G: Edges, H: Edges, I: Edges, J: Edges, K: Edges> Edges for (A, B, C, D, E, F, G, H, I, J, K)

Sourceยง

impl<A: Edges, B: Edges, C: Edges, D: Edges, E: Edges, F: Edges, G: Edges, H: Edges, I: Edges, J: Edges, K: Edges, L: Edges> Edges for (A, B, C, D, E, F, G, H, I, J, K, L)

Implementorsยง

Sourceยง

impl<T: Any + Send + Sync> Edges for Move<T>

Sourceยง

impl<T: Any + Send + Sync, G: Gen<T>> Edges for View<T, G>

Sourceยง

impl<T: Any + Send + Sync, G: Gen<T>> Edges for ViewMut<T, G>