On Sunday, 6 March 2016 at 17:35:38 UTC, Seb wrote:
Hey all,

Using structs is not ideal, because one can't require parameters, but this can be solved by having those parameters as normal ones like `sliced(4, {allowDownsize: true})` and it creates some maybe unnecessary overhead.
However it is probably the easiest solution right now.

In ggplotd I often use named tuples as and "anonymoous" struct:
Tuple!(double,"x")( 0.0 )

I also added a merge function that will return a tuple containing merged named tuples:

Tuple!(double,"x",string,"colour")(-1, "black").merge(Tuple!(double,"x")(0.0))

returns:
Tuple!(double,"x",string,"colour")(0, "black");

As an aside the merge function also works with structs so you can do the following:

struct Point
{
  double x;
  double y;
}

Tuple!(double,"x",string,"colour")(-1, "black").merge(Point(1,2))

returns:
Tuple!(double,"x",double,"y",string,"colour")(1, 2, "black");

It works reasonably well, except that the tuples require a lot of typing.

Reply via email to