scalax.collection.edge.package.scala Maven / Gradle / Ivy
The newest version!
package scalax.collection
/**
* '''Predefined edges'''.
*
* While basic edge types are defined in the object `GraphEdge`,
* the predefined edges in this package cover the following categories
* (prefixes, shortcuts):
*
* weighted (`W, %`), key-weighted (`Wk, %#`),
* labeled (`L, +`), key-labeled (`Lk, +#`),
* weighted and labeled (`WL, %+`), key-weighted and labeled (`WkL, %#+`),
* weighted and key-labeled (`WLk, %+#`) and key-weighted and key-labeled (`WkLk, %#+#`).
*
* These predefined edges provide alternatives for any edge extension
* taking the burden from the user to implement his/her custom edge class - but baring the
* disadvantage that user edge attributes must be part of a label class as opposed to
* being part of the edge class directly.
* It may also serve as a source for looking up how to implement custom edge classes.
*
* @author Peter Empen
*/
package object edge {
import GraphEdge._
import edge.CBase.Attributes
type CEdge[X] = UnDiEdge[X] with Attributes[X]
type CHyperEdge[X] = HyperEdge[X] with Attributes[X]
}