static if(!(!__traits(hasMember, G, "directed") || !__traits(hasMember, G, "edge") || !__traits(hasMember, G, "edgeCount") || !__traits(hasMember, G, "vertexCount") || !__traits(hasMember, G, "isEdge") || !__traits(hasMember, G, "edgeID") || !__traits(hasMember, G, "addEdge") || !__traits(hasMember, G, "degreeIn") || !__traits(hasMember, G, "degreeOut") || !__traits(hasMember, G, "incidentEdgesIn") || !__traits(hasMember, G, "incidentEdgesOut") || !__traits(hasMember, G, "neighboursIn") || !__traits(hasMember, G, "neighboursOut")))
static if(!(!isBoolean!(typeof(G.directed))))
static if(!(G.directed && (__traits(hasMember, G, "degree") || __traits(hasMember, G, "incidentEdges") || __traits(hasMember, G, "neighbours"))))
static if(!(!G.directed && (!__traits(hasMember, G, "degree") || !__traits(hasMember, G, "incidentEdges") || !__traits(hasMember, G, "neighbours"))))
static if(!(!isRandomAccessRange!(ReturnType!(G.incidentEdgesIn)) || !isRandomAccessRange!(ReturnType!(G.incidentEdgesOut))))
static if(!(!isRandomAccessRange!(ReturnType!(G.neighboursIn)) || !isRandomAccessRange!(ReturnType!(G.neighboursOut))))
static if(!(!G.directed && (!isRandomAccessRange!(ReturnType!(G.incidentEdges)) || !isRandomAccessRange!(ReturnType!(G.neighbours)))))
Test if G is a Dgraph graph type.