struct Foo
{
ubyte x, y, z;
}
auto hash(T)(T[] values...)
{
int[T] result;
foreach (value; values)
{
result[value] = 0;
}
return result;
}
void main()
{
auto red = Foo(255, 0, 0);
auto green = Foo(0, 255, 0);
auto blue = Foo(0, 0, 255);
auto color = Foo(0, 0, 255);
assert(color in hash(red, green, blue));
}