How to print current type of a SumType?
Paul Backus
snarwin at gmail.com
Sun Oct 1 02:18:35 UTC 2023
On Sunday, 1 October 2023 at 01:17:50 UTC, Chris Piker wrote:
> Hi D
>
> I've a simple question but it's bedeviling me anyway. How do I
> get a string representation of the current type of a SumType?
> I'm trying to avoid something like this:
>
> ```d
> alias Vec3 = SumType!(void* /* invalid vector */, byte[3],
> short[3], char[][3]);
>
> string prnType(Vec3 vec){
>
> return vec.match!(
> (void* _) => "void*",
> (byte[3] _) => "byte[3]",
> (short[3] _) => "short[3]",
> (char[][3] _) => "char[][3]"
> );
> }
> ```
>
> I'm sure there's a much easier way, especially once there's a
> largish number of vector types.
>
> Thanks,
```d
return vec.match(value => typeof(value).stringof);
```
More information about the Digitalmars-d-learn
mailing list