GraphLayout: Why is TVertex restricted to class?

Sep 20, 2010 at 2:57 PM


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.