You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been using EctoEnum and want some additional functionality from it.
I was pleased to see about the auto type generation! Next I'd like to be able to use the enums around the codebase as constants representing the different enum values (pseudo code to demonstrate how it works in typescript)
enum Direction {
Up,
Down,
Left,
Right,
}
# Elsewhere it's used as
Direction.Up
In elixir and with Ecto enum, I think this would become macro'd function definitions for each member of the enum, that return either the original string or symbol, or if an integer value is assigned in the keyword list, then it would return that.
This solves a problem where these enums are re-implemented in many non-database related modules.
defenum StatusEnum, registered: 0, active: 1, inactive: 2, archived: 3
# Then elsewhere I want to use
> StatusEnum.registered()
0
In the case of string or symbol backed enums, it would return the value itself
defenum StatusEnum, registered: "registered", active: "active", inactive: "active", archived: "archived"
# short-cut way of using string-backed enums
defenum StatusEnum, ["registered", "active", "inactive", "archived"]
# In both cases this would allow
> StatusEnum.registered()
=> "registered"
Is this a PR you're interested in accepting if I put one together? Do you see a better alternate that solves this problem?
The text was updated successfully, but these errors were encountered:
Hello :)
I've been using EctoEnum and want some additional functionality from it.
I was pleased to see about the auto type generation! Next I'd like to be able to use the enums around the codebase as constants representing the different enum values (pseudo code to demonstrate how it works in typescript)
In elixir and with Ecto enum, I think this would become macro'd function definitions for each member of the enum, that return either the original string or symbol, or if an integer value is assigned in the keyword list, then it would return that.
This solves a problem where these enums are re-implemented in many non-database related modules.
In the case of string or symbol backed enums, it would return the value itself
Is this a PR you're interested in accepting if I put one together? Do you see a better alternate that solves this problem?
The text was updated successfully, but these errors were encountered: