Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: more idiomatic enums #28

Open
dzmitry-lahoda opened this issue Dec 26, 2024 · 1 comment
Open

feat: more idiomatic enums #28

dzmitry-lahoda opened this issue Dec 26, 2024 · 1 comment

Comments

@dzmitry-lahoda
Copy link

for pure numeric enums TS seems can

enum MyEnum {
    First = 0,
    Second,
    Third
}

for enums with bodies

class Foo {
  field: number,
}
class Bar {
  otherField: string,
}
export type Baz = Foo | Bar | boolean;

or

type MyEnum = {
    tag: "first",
    field: number,
}
| {
    tag: "second",
    field: string,
}
| {
    tag: "third",
    firstField: boolean,
    secondField: number,
};
@dzmitry-lahoda
Copy link
Author

So best enum may appear enum which will be compatible with default serde crate behavior for same rust struct. So if I just create TS stuct and JSON in JS runtime, it will exactly same JSON as if I will put serde onto Rust struct ( for struct doing borsh and serde_json at same time)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant