Skip to content

SumType should provide convenient access to the type index #10459

Open
@dlangBugzillaToGithub

Description

@dlangBugzillaToGithub

snarwin+bugzilla (@pbackus) reported this on 2021-03-18T21:59:02Z

Transfered from https://issues.dlang.org/show_bug.cgi?id=21731

Description

This feature was requested on the D forums [1].

It is possible to compute the type index in user code, but the implementation is a bit verbose, and easy to get wrong:

```d
size_t typeIndex(Val)(Val val)
    if (isSumType!Val)
{
    alias QualifiedTypes = CopyTypeQualifiers!(Val, Val.Types);
    return val.match!(v => staticIndexOf!(typeof(v), QualifiedTypes));
}
```

For both convenience and correctness, it would be better if this functionality were included in the `sumtype` module.

[1] https://forum.dlang.org/post/ouqgmoxzlcyrfqxsrtnm@forum.dlang.org

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions