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.