libmir/asdf

[feature request] serde(rename_all) for enums

Opened this issue · 1 comments

In Rust the serde macro can rename all enum members, for example:

#[serde(rename_all = "UPPERCASE")]
pub enum LoginType {
    Web = 0,
    Mobile = 1,
}

The D workaround for this is to use serdeKeys:

enum LoginType {
    @serdeKeys("WEB") Web,
    @serdeKeys("MOBILE") Mobile,
}

But would it be possible to add something similar in D that affects all the enum members? E.g.:

@serdeRenamed(Uppercase)
enum LoginType {
    Web,
    Mobile,
}

The exact syntax isn't that important to me.

9il commented

It can be implemented like http://mir-algorithm.libmir.org/mir_serde.html#.serdeIgnoreCase

I am no longer work on new features, but it could be added as part of mir migration to Phobos: https://forum.dlang.org/post/szljgyqtwfangdygcifs@forum.dlang.org