I'm trying to use GraphLyaout to display a graph based on an enum, e.g. IBiDirectionalGraph<MyEnum, IEdge<MyEnum>.
However, GraphLayout is defined as
public class GraphLayout<TVertex, TEdge, TGraph>
where TVertex : class
where TEdge : IEdge<TVertex>
where TGraph : class, IBidirectionalGraph<TVertex, TEdge>
meaning that I have to wrap my enum (or int, etc.) in a class wrapper, which isn't a big deal, but I was wondering why this restriction is being imposed on GraphLayout when it isn't for IBidirectionalGraph.