On Wednesday, 16 December 2020 at 18:14:54 UTC, Oleg B wrote:
On Wednesday, 16 December 2020 at 15:58:21 UTC, 9il wrote:
On Wednesday, 16 December 2020 at 14:54:26 UTC, Oleg B wrote:
On Sunday, 15 November 2020 at 04:54:19 UTC, 9il wrote:
[...]
Great library! Have you any plan to separate it from mir-core
(to mir-algebraic for example)?
Thanks! Maybe, but mir-core is quite small itself and
mir.algebraic is the only part that would be extended or
updated in the near future. Other parts are quite stable. If
there would be a strong reason to split it, we can do it.
That are you planing update? It's will be perfect if you add
`get` overload for kind type and more work with tags [2]
like that:
```
alias TUnion = Algebraic!(
TaggedType!(int, "count"),
TaggedType!(string, "str")
);
auto v = TUnion("hello");
S: final switch (v.kind)
{
static foreach (i, k; EnumMembers!(k.Kind))
case k:
someFunction(v.get!k); // [1] by now
v.get!(TUnion.AllowedTypes[i])
break S;
}
if (v.is_count) // [2]
writeln(v.count);
```
or may be I miss this feature in docs?
Get by Kind cand be added.
You can define TaggedAlgebraic [1].
It has a bit weird API with a separate array of lengths. But we
can add another one definition option I think.
http://mir-core.libmir.org/mir_algebraic.html#TaggedVariant